Excel VBA DateAdd関数の使い方と何日(時間)後を取得する方法

VBA関数

今回はDateAdd関数を使用して指定した日付から日付を加算、減算した日付を取得する方法をご説明します。

時間の計算にも対応しています。

DateAdd関数は指定した日付に対し加算、減算した日付を取得する事ができます。

DateSerial関数と同じくらい使用頻度が高いかと思います。

日付の指定方法は「IsDate」「DateValue」「DateSerial」「DateAdd」「DateDiff」と色々ありますが、今回はこの「DateAdd関数」を使用した方法になります。

その他、日付の指定方法などは下記記事をご覧ください。

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
タイトルとURLをコピーしました