VBA関数のTime関数を使用して、現在の時刻を取得する方法をご説明します。
マクロをタスクスケジューラ等を使用して自動実行する場合等に、○○時以降ならA処理、○○時以前ならB処理を実行などの分岐などに利用すると非常に便利です。
時刻を取得するだけではなく、時間の比較を行う場合によく利用します。
タスクスケジューラの使い方は「タスクスケジューラでマクロを自動実行する」をご覧ください。
また、現在の「日付」を取得する場合は「Date関数」を使用し、現在の「日時」を取得するには「Now関数」を使用します。
1.Time関数の使い方
Time関数は現在の時刻を取得します。
次のように記述します。
Time
引数はありません。
そのまま「Time」とするだけで使用できます。
時や分など加算、減算する場合は「DataAdd関数」を使用するとわかりやすいです。
また、24時間を超える加算や減算を行った場合でも有効な時刻を返します。
2.サンプルコード
まずはシンプルなコードです。
Sub Sample1()
Debug.Print Time
End Sub
「DateAdd関数」で時刻を計算するコードです。
DateAdd関数は「”単位”,加減算の数値,起点の日時」で記述します。
単位は時は「h」、分は「n」、秒は「s」となります。
ちなみに日は「d」です。
今回は起点の日時はTimeで現在の時刻を指定しています。
Sub Sample2()
Debug.Print DateAdd("h", 1, Time)
Debug.Print DateAdd("n", -10, Time)
Debug.Print DateAdd("s", -10, Time)
End Sub