更新日:、 作成日:
VBA Time 関数:現在の時間を取得する
はじめに
Excel VBA マクロの Time 関数から現在の時間を取得する方法を紹介します。
Time 関数は、現在の時刻を返します。
現在の日時が 2000年1月2日 3時4分5秒 なら 3:04:05 を返します。
現在の時刻を取得したいときに使用します。
現在の日時を取得するには「Now 関数」を使用します。
現在の日付を取得するには「Date 関数」を使用します。
日付を入力や取得するには「日付を入力する」をご覧ください。
Time 関数の引数と戻り値
Time()
現在の時刻を取得します。
戻り値の型 | 日付型 (Date) |
解説
Windows の時刻を返します。日付は 1899/12/30 です。この日が時刻を表す日付です。
日時から時間を取得するには「TimeValue 関数」を使用します。
時分秒を取得するには「Hour 関数、Minute 関数、Second 関数」を使用します。
時間を計算
Time + #1:00:00# で 1 時間後、Time - #0:10:00# で 10 分前の時刻を取得できます。
日時を計算するには「DateAdd 関数」を使用します。
時間を計算するには「日付を計算する」をご覧ください。
ミリ秒
ミリ秒を取得するには「Timer 関数」を使用します。
日付型 (Date) はミリ秒に対応していないので、文字列としてミリ秒を結合します。
スポンサーリンク
使用例
Time 関数の使用例を紹介します。
現在時刻を取得する
現在日時が 2013/01/02 3:04:05 のときに時間を取得する。
「Now 関数」や「Date 関数」を使用して、現在の日時や日付を取得できます。
Dim d As Date
d = Time
Debug.Print(d) ' 3:04:05
d = Now
Debug.Print(d) ' 2013/01/02 3:04:05
d = Date
Debug.Print(d) ' 2013/01/02
ミリ秒を取得する
「Timer 関数」を使用して、ミリ秒を取得できます。
Dim 時刻 As Double
時刻 = Timer
Debug.Print(時刻) ' 11045.140625
Dim 秒数 As Double
秒数 = Int(時刻)
Debug.Print(秒数) ' 11045
Dim ミリ秒 As Double
ミリ秒 = 時刻 - 秒数
Debug.Print(ミリ秒) ' 0.140625
' 現在時刻
Debug.Print(Format(Time, "h:nn:ss") & Mid(ミリ秒, 2)) ' 3:04:05.140625
日時から時間を取得する
「TimeValue 関数」を使用して、日時から時間を取得できます。
Dim d As Date
d = TimeValue("2013/1/2 3:4:5")
Debug.Print(d) ' 3:04:05
d = TimeValue("2013年1月2日 3時4分5秒")
Debug.Print(d) ' 3:04:05
時分秒を取得する
「Hour 関数、Minute 関数、Second 関数」を使用して、時分秒を取得できます。
Dim d As Date
d = Now ' 2013/01/02 3:04:05
Debug.Print(Year(d)) ' 2013
Debug.Print(Month(d)) ' 1
Debug.Print(Day(d)) ' 2
Debug.Print(Hour(d)) ' 3
Debug.Print(Minute(d)) ' 4
Debug.Print(Second(d)) ' 5
時間を計算する
「DateAdd 関数」を使用して、日付を計算できます。
Dim d As Date
' 1 時間後
d = Time + #1:00:00#
Debug.Print(d) ' 4:04:05
d = DateAdd("h", 1, Time)
Debug.Print(d) ' 4:04:05
' 10 分前
d = Time - #0:10:00#
Debug.Print(d) ' 2:54:05
d = DateAdd("n", -10, Time)
Debug.Print(d) ' 2:54:05
スポンサーリンク