構文
構文は以下の通りです。
解説
DateDiff関数は、2つの指定した日付の時間間隔を表す値を返します。
引数 | 指定 | 内容 |
単位 | 必須 | 計算する期間の単位を指定します。設定値を以下で紹介します。 |
日時1 | 必須 | 期間の開始日を指定します。 |
日時2 | 必須 | 期間の終了日を指定します。 |
週の開始曜日 | 省略可 | 週の最初の日を指定します。設定値を以下で紹介します。 |
年の第1週 | 省略可 | 年の最初の週を指定します。設定値を以下で紹介します。 |
単位には以下の設定値が指定できます。
定数 | 内容 |
"yyyy" | 年単位 |
"q" | 四半期単位 |
"m" | 月単位 |
"y" | 日単位(年を無視した日数) |
"w" | 週単位 |
"d" | 日単位 |
"h" | 時間単位 |
"n" | 分単位 |
"s" | 秒単位 |
週の開始曜日には以下の設定値が指定できます。
定数 | 値 | 内容 |
vbSunday | 1 | 日曜日(既定値) |
vbMonday | 2 | 月曜日 |
vbTuesday | 3 | 火曜日 |
vbWednesday | 4 | 水曜日 |
vbThursday | 5 | 木曜日 |
vbFriday | 6 | 金曜日 |
vbSaturday | 7 | 土曜日 |
年の第1週には以下の設定値が指定できます。
定数 | 値 | 内容 |
vbFirstJan1 | 1 | (既定値)1月1日を含む週を年度の第1週として扱います。 |
vbFirstFourDays | 2 | 7日のうち少なくとも4日が新年度に含まれる週を年度の第1週として扱います。 |
vbFirstFullWeek | 3 | 全体が新年度に含まれる最初の週を年度の第1週として扱います。 |
使用例
DateDiff("yyyy", #7/1/1970#, #6/9/2013#)
DateDiff("m", #4/1/1970#, #6/9/2013#)
DateDiff("d", #4/1/1970#, #6/9/2013#
使い方
具体的な使い方を幾つか紹介します。
例1: 年齢を計算する
Dim 生年月日 As Date
Dim 現在の日付 As Date
Dim 年齢 As Integer
' 生年月日を設定(例: 1990年1月1日)
生年月日 = DateSerial(1990, 1, 1)
' 現在の日付を取得
現在の日付 = Date
' 年齢を計算
年齢 = DateDiff("yyyy", 生年月日, 現在の日付)
' 結果を表示
MsgBox "年齢は " & 年齢 & " 歳です。"
End Sub
この例では、生年月日から現在の日付までの年齢を計算しています。DateDiff関数を使用して、年単位での差を計算しています。
例2: 2つの日付間の月数を計算する
Dim 日付1 As Date
Dim 日付2 As Date
Dim 月数 As Integer
' 日付1と日付2を設定
日付1 = DateSerial(2023, 1, 1)
日付2 = DateSerial(2023, 12, 31)
' 2つの日付間の月数を計算
月数 = DateDiff("m", 日付1, 日付2)
' 結果を表示
MsgBox "日付1と日付2の間の月数は " & 月数 & " です。"
End Sub
この例では、2つの日付間の月数を計算しています。DateDiff関数の"m"パラメータを使用して、月単位での差を計算しています。
例3: 特定の週の曜日を求める
Dim 年 As Integer
Dim 週 As Integer
Dim 曜日 As String
' 年と週を設定
年 = 2023
週 = 5 ' 5週目
' 特定の週の水曜日を求める
曜日 = WeekdayName(DatePart("w", DateSerial(年, 1, 1) + (週 - 1) * 7 + 3))
' 結果を表示
MsgBox "2023年の第" & 週 & "週の水曜日は " & 曜日 & " です。"
End Sub
この例では、指定した年の特定の週の曜日を求めています。DateDiff関数は使用していませんが、DatePart関数を使用して指定した週の特定の曜日を計算しています。
プログラミング例
以下に、プログラミング例を紹介します。
Dim startDate As Date
Dim endDate As Date
Dim duration As Long
startDate = #1/1/2023# ' 開始日を指定します。
endDate = #12/31/2023# ' 終了日を指定します。
' 日単位で期間を計算します。
duration = DateDiff("d", startDate, endDate)
' 結果を表示します。
MsgBox "期間の日数は " & duration & " 日です。"
End Sub
上記のプログラムでは、startDateに2023年1月1日、endDateに2023年12月31日を指定しています。そして、DateDiff関数を使用して日単位の期間を計算し、duration変数に結果を格納します。最後に、MsgBox関数を使用して結果を表示します。
まとめ
DateDiff関数は、日付の間の期間を計算するために便利な機能です。この関数を使用することで、日数や時間、分、秒などの単位で期間を計算することができます。是非活用してください。