VBA Now 関数:現在の日時を取得する

はじめに

Excel VBA マクロの Now 関数から現在の日時を取得する方法を紹介します。

Now 関数は、現在の日時を返します。

現在の日時が 2000年1月2日 3時4分5秒 なら 2000/01/02 3:04:05 を返します。

現在の日時を取得したいときに使用します。

現在の日付を取得するには「Date 関数」を使用します。
現在の時刻を取得するには「Time 関数」を使用します。
日付を入力や取得するには「日付を入力する」をご覧ください。
  • 目次
    • Now 関数の引数と戻り値
    • 解説
    • 使用例

Now 関数の引数と戻り値

Now()
現在の日時を取得します。

戻り値の型日付型 (Date)

解説

Windows の日時を返します。

年月日を取得するには「Year 関数Month 関数Day 関数」を使用します。

時分秒を取得するには「Hour 関数Minute 関数Second 関数」を使用します。

日付を取得するには「日付を入力する」をご覧ください。

ミリ秒

ミリ秒を取得するには「Timer 関数」を使用します。

日付型 (Date) はミリ秒に対応していないので、文字列としてミリ秒を結合します。

使用例

Now 関数の使用例を紹介します。

現在日時を取得する

現在日時が 2013/01/02 3:04:05 のときに日時を取得する。

Date 関数」や「Time 関数」を使用して、現在の日付や時間を取得できます。

Dim d As Date

d = Now
Debug.Print(d) ' 2013/01/02 3:04:05

d = Date
Debug.Print(d) ' 2013/01/02

d = Time
Debug.Print(d) ' 3:04:05

ミリ秒を取得する

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(Now, "yyyy/mm/dd h:nn:ss") & Mid(ミリ秒, 2)) ' 2013/01/02 3:04:05.140625

年月日や時分秒を取得する

Year 関数Month 関数Day 関数」を使用して、年月日を取得できます。

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