• ベストアンサー

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時間後の条件式の書き方を教えてください。 よろしくお願いします。

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

  • ベストアンサー
  • n-jun
  • ベストアンサー率33% (959/2873)
回答No.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 こうゆうこと?

kj74hvjasi
質問者

補足

ありがとうございます。 早速、試してみたいと思います。

その他の回答 (1)

  • kmee
  • ベストアンサー率55% (1857/3366)
回答No.1

現在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 等の時には、自>至の時だけ翌日と見做す など

kj74hvjasi
質問者

補足

Timeは現在時刻です。 If Time >= TimeValue("9:00:00") And Time <= TimeValue("14:00:00") Then 上記のIF文で9:00~14:00の間、マクロによる作業が実行されています。 その後、一休みして 16:00~翌日の4:00までの、日をまたがってマクロによる作業をさせたいと考えています。 しかし、その条件文が出来ないで困っています。 よろしくお願いします。

関連するQ&A

専門家に質問してみよう