VBA – 今日の日付(現在の日付)を取得する
In this Article
このチュートリアルでは、VBAで今日の日付を取得する方法を説明します。
VBAのコードで今日の日付を取得するには、VBAのDate()関数またはNow()関数を使用します。
Date()関数
Date()関数は、今日の日付を返します。以下の例では、今日の日付を変数に代入し、VBE エディタのイミディエイトウィンドウに表示しています。
Dim dtToday as Date
dtToday = Date()
Debug.Print dtToday
また、メッセージボックスに日付を表示することもできます。
Sub TestDate
Dim dtToday as Date
dtToday = Date()
Msgbox "今日の日付 : " & dtToday
End Sub
Now()関数
Now()関数は、日付関数と同じように動作しますが、時刻が含まれます。
Sub TestDate()
Dim dtToday As Date
dtToday = Now()
MsgBox "今日の日付 : " & dtToday
End Sub
VBAで日付の書式を設定する
Date()関数とNow()関数の両方において、日付は PC の設定によって決定される既定のスタイルでフォーマットされます。 この書式をカスタマイズするには、VBAの Format 関数を使用します。 Format関数は文字列を返すので、 DATE変数ではなく、 STRING変数を宣言する必要があります。
Sub TestDate()
Dim dtToday As String
dtToday = Format (Date, "dd mmmm yyyy")
MsgBox "今日の日付 : " & dtToday
End Sub
Now()関数をフォーマットして、カスタマイズされたフォーマットで時間部分を含めることもできます。
Sub FormatNow()
Dim dtToday As String
dtToday = Format(Now(), "dd mmmm yy hh:mm:ss am/pm")
MsgBox dtToday
End Sub
VBAで2つの日付を比較する
イベントまでの日数を計算したい場合など、Date 関数を使用して今日の日付と別の日付を比較することもできます。 このような場合は、VBAの DateDiff() 関数を使えば数値を返します。そのため、返された値を格納するためにINTEGER変数を宣言しておきましょう。
Sub TestDateDiff()
Dim dtToday As Date
Dim dtSomeDay As Date
Dim iDays As Integer
dtToday = Date
dtSomeDay = "05/06/2021"
iDays = DateDiff("d", dtToday, dtSomeDay)
MsgBox "2つの日付の間には " & iDays & " 日間あります"
End Sub
日付は数値として保存されるので、最初の日付から2番目の日付をマイナスしても同じ答えが得られます。
iDays = dtToday - dtSomeDay