今回はDateAdd関数を使用して指定した日付から日付を加算、減算した日付を取得する方法をご説明します。
時間の計算にも対応しています。
DateAdd関数は指定した日付に対し加算、減算した日付を取得する事ができます。
DateSerial関数と同じくらい使用頻度が高いかと思います。
日付の指定方法は「IsDate」「DateValue」「DateSerial」「DateAdd」「DateDiff」と色々ありますが、今回はこの「DateAdd関数」を使用した方法になります。
その他、日付の指定方法などは下記記事をご覧ください。
- IsDate関数の使い方と日付に変換する方法
- DateSerial関数の使い方と月初、月末の指定
- DateValue関数、TimeValue関数の使い方と日付、時刻の変換方法
- DateDiff関数の使い方と2つの日付の日数をループする
1.DateAdd関数の使い方
指定日時に対して指定した単位の加算日(時間)を算出した結果を取得します。
取得結果は日付として有効な日付となります。
例えば「2018/1/31」に1か月加算した場合には「2018/2/28」と返されます。
DateAdd関数は次の様に記述します。
DateAdd(単位, 加算日(時間), 指定日時)
引数一覧です。
引数 | 説明 |
単位 | 加算日(時間)の増減の単位を指定します。 |
加算日(時間) | 加算(減算)する日付(時間)を指定します。 |
日付(時間) | 計算する元の日付(時間)を指定します。 |
単位の設定値一覧です。
設定値 | 説明 |
yyyy | 年 |
q | 四半期 |
m | 月 |
y | 年間通算日 |
d | 日 |
w | 週日 |
ww | 週 |
h | 時 |
n | 分 |
s | 秒 |
2.DateAdd関数のサンプルコード
基本的な記述のサンプルコードです。
文頭でも記載していますが、マイナス(減算)する事も可能です。
Sub Sample1()
Debug.Print DateAdd("yyyy", 1, Date) '1年後
Debug.Print DateAdd("yyyy", -1, Date) '1年前
Debug.Print DateAdd("q", 1, Date) '四半期後
Debug.Print DateAdd("m", 1, Date) '1か月後
Debug.Print DateAdd("d", 1, Date) '1日後
Debug.Print DateAdd("ww", 1, Date) '1週間後
End Sub

ループで日付を加算するサンプルコードです。
指定日から10日分ループして加算した結果を取得します。
「0 To 9」としているのは、指定した日を含めるためです。
Sub Sample2()
Dim i As Long
For i = 0 To 9
Debug.Print DateAdd("d", i, "2019/7/1")
Next i
End Sub
