日付と時間の間隔、すなわち経過日数や経過時間等を計算する際に使用する関数に「DateAdd関数」と「DateDiff関数」があります。
「DateAdd関数」は特定のシリアル値から「7日後」「4か月後」のような経過後の月日の計算に使われます。
一方「DateDiff関数」は、二つの日付の差分を求める時に使われます。
DateAdd関数
DateAdd(要素の指定, 加算する値, 基準シリアル値)
要素の指定 ➡ 日付なら yyyy(年)・m(月)・d(日)であり、時間なら h(時間)・n(分)・ s(秒)
シリアル値 ➡ 計算のスタートとなる日時(例:2020/02/01 または 2020/10/15 13:30:00)
※ 指定する日付や時刻は文字列(例:”2020/3/10″)の他にリテラル値(例:#3/10/2020#)や数式(例:Now関数)で設定できます。
Sub 経過日時()
‘① 2021/5/10 から5か月後
Range(“B2”) = DateAdd(“m”, 5, “2021/5/10”)
‘②2021/3/4 から85日後
Range(“B3”) = DateAdd(“d”, 85, “2021/3/4”)
‘③ 2021/2/10 7時31分から35時間後
Range(“B4”) = DateAdd(“h”, 35, “2021/2/10 7:31”)
‘④ 2021/2/10 7時31分から750分後
Range(“B5”) = DateAdd(“n”, 750, “2021/2/10 7:31”)
End Sub

DateDiff関数
DateDiff(要素の指定, 日付1, 日付2)
要素の指定 ➡ 日付なら yyyy(年)・m(月)・d(日)であり、時間なら h(時間)・n(分)・ s(秒)
日付 ➡ いつから(日付1)~ いつまで(日付2)
Sub 間隔日時()
Dim startm As Date
Dim endtm As Date
‘①月数
Range(“B2”) = DateDiff(“m”, “2020/3/15”, “2020/6/18”)
‘②日数
Range(“B3”) = DateDiff(“d”, #2/1/2020#, #2/3/2020#)
‘③経過時間
startm = Range(“B5”) ‘開始時刻
endtm = Range(“B6”) ‘終了時刻
Range(“B7”) = DateDiff(“h”, startm, endtm)
‘④何時間
Range(“B9”) = DateDiff(“h”, “2021/10/1”, “2021/10/2”)
‘⑤何分
Range(“B10”) = DateDiff(“n”, “2021/10/1”, “2021/10/2”)
‘⑥何秒
Range(“B11”) = DateDiff(“s”, “2021/10/1”, “2021/10/2”)
‘⑦何日前
Range(“B12”) = DateDiff(“d”, “2021/10/31”, “2021/10/12”)
End Sub

