DateDiff 関数

2 つの指定した日付の時間間隔を指定する Variant (Long) を返します。

構文

DateDiff(interval, date1, date2, [ firstdayofweek, [ firstweekofyear ]] )

DateDiff 関数の構文には、次の 名前付き引数があります。

指定項目 説明
interval 必須。 date1date2 の時間間隔の計算に使用する時間単位を表す 文字列式です。
date1date2 必須。Variant (Date)。 計算に使用する 2 つの日付です。
firstdayofweek 省略可能。 週の始まりの曜日を表す定数です。 省略すると、日曜日を指定したものと見なされます。
firstweekofyear 省略可能。 年の第 1 週を指定する定数です。 省略すると、1 月 1 日を含む週が第 1 週と見なされます。

設定

interval 引数の設定は次のとおりです。

設定 説明
yyyy
q 四半期
m
y 通年での日数
d
w 平日
ww
h
n
s

firstdayofweek 引数の設定は次のとおりです。

定数 説明
vbUseSystem 0 NLS API 設定を使用します。
vbSunday 1 日曜日 (既定)
vbMonday 2 月曜日
vbTuesday 3 火曜日
vbWednesday 4 水曜日
vbThursday 5 木曜日
vbFriday 6 金曜日
vbSaturday 7 土曜日

定数 説明
vbUseSystem 0 NLS API 設定を使用します。
vbFirstJan1 1 1 月 1 日が含まれる週から開始します (既定)。
vbFirstFourDays 2 新年で少なくとも 4 日ある最初の週から開始します。
vbFirstFullWeek 3 年の最初の完全な週から開始します。

解説

DateDiff 関数を使用して、2 つの日付の間に指定した時間間隔がどのくらい存在するかを確認します。 たとえば、DateDiff を使用して、2 つの日付間の日数や、今日から年末までの週数を計算することができます。

date1date2 の間の日数を計算するには、年 ("y") または日 ("d") の日付を使用できます。 interval が曜日 ("w") の場合、DateDiff は 2 つの日付間の週数を返します。 date1 が月曜日の場合、DateDiff では date2 までの月曜日の数がカウントされます。 date1 ではなく date2 がカウントされます。

一方、interval が週 ("ww") の場合、DateDiff 関数は 2 つの日付間のカレンダーの週数を返します。 date1date2 間の日曜日の数がカウントされます。 DateDiff では、date2 が日曜日の場合は、date2 がカウントされます。date1 が日曜日の場合でも date1 はカウントされません。

date1date2 よりも後の時点を示す場合、DateDiff 関数は負の数を返します。 firstdayofweek 引数は、"w" および "ww" の間隔記号を使用する計算に影響します。

date1 または date2日付リテラルの場合、指定した年はその日付の一部として恒久的に保存されます。 ただし、date1 または date2 が二重引用符 (" ") で囲まれていて、年を省略した場合、date1 または date2 の式が評価されるたびに、現在の年がコードに挿入されます。 これにより、別の年でも使用できるコードを記述することができます。

連続する年の 12 月 31 日と 1 月 1 日を比較すると、1 日が経過しただけの場合でも、年 ("yyyy") の DateDiff は 1 を返します。

注意

Calendar プロパティの設定がグレゴリオ暦の場合、date1date2 ではグレゴリオ暦の日付を指定する必要があります。 カレンダーがイスラム暦の場合は、イスラム暦で日付を指定する必要があります。

この例では、DateDiff 関数を使用して、指定された日付から今日までの日数を表示します。

Dim TheDate As Date    ' Declare variables.
Dim Msg
TheDate = InputBox("Enter a date")
Msg = "Days from today: " & DateDiff("d", Now, TheDate)
MsgBox Msg

関連項目

サポートとフィードバック

Office VBA またはこの説明書に関するご質問やフィードバックがありますか? サポートの受け方およびフィードバックをお寄せいただく方法のガイダンスについては、Office VBA のサポートおよびフィードバックを参照してください。