VBA Date型の計算(2つのDate型の差(時間間隔))

VBAで2つのDate型の差を算出する方法を紹介します。

たとえば、2021年5月17日と2021年5月24の差は7日ですが、これをVBAでプログラミングするには、DateDiff関数を使います。

DateDiff関数 構文

  • DateDiff(interval, date1, date2, firstdayofweek, firstweekofyear)

DateDiff関数は以下の引数をもちます。

  • interval : date1 と date2 の時間間隔の計算に使用する時間単位を表す文字列式です。
  • date1: 計算に使用する日付
  • date2: 計算に使用する日付
  • firstdayofweek: 省略可能。 週の始まりの曜日を表す定数です。 省略すると、日曜日を指定したものと見なされます。
  • firstweekofyear: 省略可能。 年の第 1 週を指定する定数です。 省略すると、1 月 1 日を含む週が第 1 週と見なされます。

以下のように、引数3つを指定してDateAdd関数を使用します。

    Dim DateValue1 As Date
    DateValue1 = #2/29/2020 10:00:00 AM#

    Dim DateValue2 As Date
    DateValue2 = #2/28/2021 8:00:00 PM#

    MsgBox (DateDiff("yyyy", DateValue1, DateValue2))

時間単位を表す文字列式

説明 実行例
yyyy DateDiff(“yyyy”, #2/29/2020 10:00:00 AM#, #2/28/2021 8:00:00 PM#) = 1
q 四半期 DateDiff(“q”, #2/29/2020 10:00:00 AM#, #2/28/2021 8:00:00 PM#) = 4
m DateDiff(“m”, #2/29/2020 10:00:00 AM#, #2/28/2021 8:00:00 PM#) = 12
y 通年での日数 DateDiff(“y”, #2/29/2020 10:00:00 AM#, #2/28/2021 8:00:00 PM#) = 365
d DateDiff(“d”, #2/29/2020 10:00:00 AM#, #2/28/2021 8:00:00 PM#) = 365
w 平日 DateDiff(“w”, #2/29/2020 10:00:00 AM#, #2/28/2021 8:00:00 PM#) = 52
ww DateDiff(“ww”, #2/29/2020 10:00:00 AM#, #2/28/2021 8:00:00 PM#) = 53
h DateDiff(“h”, #2/29/2020 10:00:00 AM#, #2/28/2021 8:00:00 PM#) = 8770
n DateDiff(“n”, #2/29/2020 10:00:00 AM#, #2/28/2021 8:00:00 PM#) = 526200
s DateDiff(“s”, #2/29/2020 10:00:00 AM#, #2/28/2021 8:00:00 PM#) = 31572000

コメント

タイトルとURLをコピーしました