• ベストアンサー

VBAで稼働日を表示したいのですが・・・

VBAで稼働日を求めたいのですがうまく出来ずに困っています。 A列:日付2008/1/1~2009/3/31まで入っています。 B列:『休』とお休みに該当した日をいれます。(土日とは限らない) 例として1月1日(A1セル)が休みとしたらB1セルに『休』と入れお休み表にします。 C列:適当な日を手入力します。(規則性は全く無し) D列:C列の3稼働日後を入れたいです。 AやB列からどうスキャンし3稼働日後を出したらよいのか… 説明だと分かりづらいかもしれませんのでこんな感じの結果を得たいエクセルがあるので見ていただいた方が分かるかとも思います。 どなたかヒントでもあれば教えて下さい。 お願いします。 http://briefcase.yahoo.co.jp/bc/robert_kubica_bmw/vwp2?.tok=bclxRHbB_q.izEUN&.dir=/&.dnm=%b2%d4%c6%af%c6%fc.xls&.src=bc

質問者が選んだベストアンサー

  • ベストアンサー
  • hana-hana3
  • ベストアンサー率31% (4940/15541)
回答No.2

A列の日付が漏れなく入っている事を前提にしてます。 C列の日付から、A列の日付位置(R1)を計算して、そこから稼働日(Count)を探し始めます。 見つかった位置をD列に記入します。 Sub sample() Dim Count As Integer Dim R1 As Long Dim R2 As Long R2 = 2 Do While Cells(R2, 3) <> "" R1 = DateDiff("d", Range("A2"), Cells(R2, 3)) + 2 Count = 0 Do If Cells(R1, 2) <> "休" Then Count = Count + 1 If Count = 3 Then If IsDate(Cells(R1, 1)) Then Cells(R2, 4) = Cells(R1, 1) End If Exit Do End If End If R1 = R1 + 1 Loop R2 = R2 + 1 Loop End Sub

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (1)

  • higekuman
  • ベストアンサー率19% (195/979)
回答No.1

A列で、C列と同じ値のセルを探し、そこを基準に下に向かって順に調べていき、1行ごとに、B列に『休』があるかどうかを調べて、無かったらカウンタをカウントアップして、3稼働日後になったらそのときのA列の値をD列に記入すれば良いです。 特に難しくも無いですよね? そのまま素直に考えれば良いだけです。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • 曲名とアーティストを教えてください。

    曲名とアーティストを教えてください。3曲ありますが、分かる曲だけでもいいので、回答お願いします。きっと聞いたことがあるかと思います。 曲(1):http://briefcase.yahoo.co.jp/bc/tks_3a/vwp2?.tok=bciCSJIBQ1TUTMa5&.dir=/&.dnm=Unknown-1.mp3&.src=bc 曲(2):http://briefcase.yahoo.co.jp/bc/tks_3a/vwp2?.tok=bciCSJIBlrdVd.ex&.dir=/&.dnm=Unknown-2.mp3&.src=bc 曲(3):http://briefcase.yahoo.co.jp/bc/tks_3a/vwp2?.tok=bciCSJIBzzxa4aZi&.dir=/&.dnm=Unknown-3.mp3&.src=bc 注意:聴くときは保存をお願いします。

  • VLOOKUPでうまく出来ないことがあります。(VBA)

    VBAでのVLOOKUPがうまく使えません。どなたかご教示いただけたらうれしいです。 詳細は下記からダウンロードしていただいた方が説明するよりいいかと思います。 http://briefcase.yahoo.co.jp/bc/i_am_a_formularacer/vwp2?.tok=bcHmzuaBqMk7BpjL&.dir=/b6bc&.dnm=K%26N.xls&.src=bc Sheet2にある期限データを入力していきます。Sheet3の30/、40/、60/の横のセルに探し当てたデータを入れ込みたいのですがうまくいかなくてどうしようもなくなってしまいました。 どなたかヒントをお願いします。

  • VBAでDateaddの日付計算で困っていることがあるので助けていただけないでしょうか。よろしくお願いします。

    シート: A列には”注射”という文字を入れるようにします。 B列には1月1日から12月31日まで入っています。 C列はB列の90日後を入れるようにします。 D列はC列の3日前を入れます。・・・としたいのですがその3日の間A列に”注射”が入っていたらその日を入れずに3日前にしたいのです。 稼働日みたいな感じでしょうか・・・・ どうしたらよいでしょうか?お願いします。 例えば、B列の「1月1日」の90日後はC列「3月31日」でD列は通常「3月28日」が入っていますがB列「3月30日」の左のA列に”注射”があったらそこを無視して「3月27日」と入れたいのです。 Sub count() Dim i As Long Dim lastrow As Long lastrow = Range("B1").End(xlDown).Row For i = 1 To lastrow Cells(i, 3).Value = DateAdd("d", 90, Cells(i, 2).Value) Next For i = 1 To lastrow Cells(i, 4).Value = DateAdd("d", -3, Cells(i, 3).Value) Next End Sub 説明が下手なのでもしよかったら実際作ったものを見ていただいた方が分かるかもしれません。 http://briefcase.yahoo.co.jp/bc/robert_kubica_bmw/vwp2?.tok=bcf8oGbB4FXgt88k&.dir=/&.dnm=1count.xls&.src=bc

  • テクノ・トランス系の諸先輩! この曲名・アーティスト名を教えてくださいませ。

    http://jp.y42.briefcase.yahoo.co.jp/bc/kammoridensya/vwp2?.tok=bcbfHxUBuD1LsrQB&.dir=/%b6%b5%a4%a8%a4%c6GOO%a1%aa&.dnm=osiete.wav.wav&.src=bc に置いている、 「osiete.wav」ですが、 1998年頃、よく有線で流れていた曲だと思います。 たまたまコンピもののMP3の中にまぎれていたのです・・・。 よろしくお願いいたします。!!

  • 曲名とアーティストを教えてください。(訂正)

    曲名とアーティスト名を教えてください。多分、聞いたことがある人が結構いると思います。よろしくお願いします。 この曲→http://briefcase.yahoo.co.jp/bc/tks_3a/vwp2?.tok=bcEJtIIBzd0VbfSn&.dir=/&.dnm=Unknown.mp3&.src=bc 聴くときは保存をお願いします。

  • この野鳥の名前を教えてください

    先日、700m程度の里山に行ったときに聞きました。とってもユニークな鳴き方だったので、携帯で録音して家で調べましたが、家にある4枚の鳥の鳴き声に関するCDやDVDのどれを聴いても、それらしき鳴き声が聞きあたりません。 どうか、よろしくお願いします。 http://briefcase.yahoo.co.jp/bc/cd125/vwp2?.tok=bcHBLAdB1zbBp0c_&.dir=/3c96&.dnm=00_MMF0005.wma

  • これを探しています!!(ダイソー、ハンガー)

    昔ダイソーで購入したこちら↓のようなハンガーを探しています。 http://briefcase.yahoo.co.jp/bc/sabasa115/vwp?.dir=/&.dnm=a.jpg&.src=bc&.view=l&.done=http%3a//briefcase.yahoo.co.jp/bc/sabasa115/lst%3f%26.dir=/%26.src=bc%26.view=l 針金がなかに入っていてこのように↓ http://briefcase.yahoo.co.jp/bc/sabasa115/vwp?.dir=/&.dnm=b.jpg&.src=bc&.view=l&.done=http%3a//briefcase.yahoo.co.jp/bc/sabasa115/lst%3f%26.dir=/%26.src=bc%26.view=l 自由に曲げることができます。 薄いセーターなども掛けられてとても重宝しているのですが、、近所を探してもどこにも売っていません。 同等品で構いませんのでご存知の方がいらっしゃいましたら教えて下さい。 よろしくお願いします、ちなみに住んでいる場所は神戸です。

  • 蜂の巣?ごみ?

    うちの隣の部屋の外の壁に蜂の巣らしきものがあるのです。またごみかもしれません。参考URLに写真がありますので分かる方教えてください。もし蜂の巣なら早く知らせてあげたいのです。 http://briefcase.yahoo.co.jp/bc/rc_fd3s_fc3s/vwp?.dir=/&.dnm=DSCF0001.jpg&.src=bc&.view=l&.done=http%3a//briefcase.yahoo.co.jp/bc/rc_fd3s_fc3s/lst%3f%26.dir=/%26.src=bc%26.view=l http://briefcase.yahoo.co.jp/bc/rc_fd3s_fc3s/vwp?.dir=/&.dnm=DSCF0002.jpg&.src=bc&.view=l&.done=http%3a//briefcase.yahoo.co.jp/bc/rc_fd3s_fc3s/lst%3f%26.dir=/%26.src=bc%26.view=l

  • エクセル グラフ作成!!

    エクセルのグラフ作成に関してしてご相談です。 現状グラフを作成する際、元データを1行中に作成しないとグラフ 作成が出来ませんが、2行以上の元データに関してのグラフ作成の やり方を教えて下さい。 例:カレンダーの数値をグラフ化する 下記はヤフーのブリーフケースにこんな場合は如何でしょうか? といったエクセルのファイルを載せました。 http://briefcase.yahoo.co.jp/bc/koffee220/vwp2?.tok=bcUNN8HBUZk.2vCI&.dir=/80df&.dnm=%a5%a8%a5%af%a5%bb%a5%eb%a1%a1%a5%b0%a5%e9%a5%d5%ba%ee%c0%ae.xls&.src=bc

  • タスクバーを覆う線を消すには?

    タスクバーの上に青い一本線がかぶさってしまいました。 タスクバーを固定しても再起動しても直りません。 どうすれば元に戻るのでしょうか。 会社のパソコンなのですが、administratorでログインすると問題なく、自分のアカウントでログインするとこのような現象が起こります。 作業場は問題ないのですが、なんとなく気になってしまうのでよろしくお願いします。 http://jp.y42.briefcase.yahoo.co.jp/bc/momotya913/vwp2?.tok=bc1M57ABj_JRLUC1&.dir=/%bb%c5%bb%f6&.dnm=image.gif.gif&.src=bc