Excel VBA: DateDiff関数の解説と使用例
DateDiff関数は、2つの日付間の差を特定の単位(日、月、年など)で計算するためのExcel VBAの関数です。
構文
DateDiff関数の構文は以下の通りです:
DateDiff(interval, date1, date2, [firstdayofweek], [firstweekofyear])
- interval: 差を計算する単位を指定します。「yyyy」(年)、「q」(四半期)、「m」(月)、「y」(年内の日付)、「d」(日)、「w」(週)、「ww」(週数)、「h」(時間)、「n」(分)、「s」(秒)のいずれかの値を取ることができます。
- date1とdate2: 差を計算する2つの日付を指定します。これらは日付リテラル、日付を含むセルへの参照、または日付を返す関数など、日付を表す任意の式を使用できます。
- firstdayofweek(オプション): 週の最初の日を指定します。これは VbDayOfWeek 列挙型のメンバーで、デフォルトは vbSunday です。
- firstweekofyear(オプション): 1週目をどの週とするかを指定します。これは VbFirstWeekOfYear 列挙型のメンバーで、デフォルトは vbFirstJan1 です。
使用例
次のVBAのサブプロシージャは、指定した2つの日付間の差を計算し、それをメッセージボックスに表示します。
Sub ShowDateDifference() Dim interval As String Dim date1 As Date Dim date2 As Date Dim difference As Long interval = "d" ' 日単位での操作を指定 date1 = #1/1/2023# ' 初めの日付を指定 date2 = Date ' 現在の日付を指定 ' DateDiff関数を使用して2つの日付の差を計算 difference = DateDiff(interval, date1, date2) ' 計算した日付の差を表示 MsgBox "指定した日付(" & date1 & ")から今日までの日数は" & difference & "日です。", vbInformation End Sub
このサブプロシージャを実行すると、指定した日付(ここでは2023年1月1日)から現在までの日数がメッセージボックスに表示されます。