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
 
	 
					
