- ベストアンサー
VBAのIF分で時間指定の条件式の書き方
VBAのIF分で時間指定の条件式の書き方を教えてください。 9:00~14:00で実行する下記のマクロはうまく機能しています。 If Time >= TimeValue("9:00:00") And Time <= TimeValue("14:00:00") Then 下記をご教授願います。 16:00~翌日の4:00までの、日をまたがっての12時間後の条件式の書き方を教えてください。 よろしくお願いします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
If (Time >= TimeValue("16:00:00") And Time <= TimeValue("23:59:59")) Or _ (Time >= TimeValue("00:00:00") And Time <= TimeValue("04:00:00")) Then こうゆうこと?
その他の回答 (1)
- kmee
- ベストアンサー率55% (1857/3366)
現在Timeに入っているのは、何の値でしょうか? 「当日の3:00」と「翌日の3:00」の区別はあるのでしょうか? 0:00から4:00を「翌日」と見做せるのなら 16:00から24:00の間、または、0:00から4:00の間 という意味で If (Time >= TimeValue("16:00:00") And Time <= TimeValue("23:59:59")) Or (Time >= TimeValue("0:00:00") And Time <= TimeValue("4:00:00")) Then さらに、Time <= TimeValue("23:59:59")とTime >= TimeValue("0:00:00") は必ず成立する(はず)なので If Time >= TimeValue("16:00:00") Or Time <= TimeValue("4:00:00") Then となります。 そうでないなら、なんらかの方法で「翌日」であることを判断する必要があります。 ・日付も使う ・自:16:00,至:4:00 等の時には、自>至の時だけ翌日と見做す など
補足
Timeは現在時刻です。 If Time >= TimeValue("9:00:00") And Time <= TimeValue("14:00:00") Then 上記のIF文で9:00~14:00の間、マクロによる作業が実行されています。 その後、一休みして 16:00~翌日の4:00までの、日をまたがってマクロによる作業をさせたいと考えています。 しかし、その条件文が出来ないで困っています。 よろしくお願いします。
補足
ありがとうございます。 早速、試してみたいと思います。