« 一定時間ごとに繰り返し実行する | トップページ | 『Excel VBAマスターブック 2003&2002対応 WindowsXP版』 »

2010年9月 1日 (水)

時間帯で条件分岐

現在の時刻は

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になります。

|

« 一定時間ごとに繰り返し実行する | トップページ | 『Excel VBAマスターブック 2003&2002対応 WindowsXP版』 »

コメント

この記事へのコメントは終了しました。

トラックバック


この記事へのトラックバック一覧です: 時間帯で条件分岐:

« 一定時間ごとに繰り返し実行する | トップページ | 『Excel VBAマスターブック 2003&2002対応 WindowsXP版』 »