時間帯で条件分岐
現在の時刻は
Time
で取得できます。
条件分岐にはIfステートメントを使います。
例えば、7時以降なら実行したい処理がある場合、
If "7:00" < Time Then
…
End If
のようにしたいですけど、
このままでは「"7:00"」の部分が文字列と判断されて
意図したように条件分岐できません。
「"7:00"」を時間として処理させるには
CDate関数でデータ型を日付にします。
この関数を使うと、
CDate("7:00") = 1899/12/30 07:00:00
という日時になります。
Debug.Print Format(CDate(Time), "yyyy/mm/dd hh:mm:ss")
を実行するとわかりますが、
Timeで取得した現在の時刻も日付は1899/12/30です。
同じ日付なので
CDate("7:00")とTimeを比較するとき日付は無視できます。
7時以降なら実行したい処理がある場合の有効な条件分岐は
If CDate("7:00") < Time Then
…
End If
になります。
次は、7時から17時30分の時間帯に処理したい場合の条件です。
論理演算子Andを使います。
If CDate("7:00") < Time And Time < CDate("17:30") Then
…
End If
現在の時刻が7:00より大きい
かつ
現在の時刻が17:30より小さい
このような場合にTrueになります。
| 固定リンク
この記事へのコメントは終了しました。

コメント