教えて!ExcelVBA!

ExcelVBAの基礎知識・書き方について紹介します。

【ExcelVBA 関数】DateAdd関数で指定された日数を加算・減算するにはどうすればいいの?使い方を教えて!

f:id:m_kbou:20200420121620p:plain

 

 

構文

記述方法は以下の通りとなります。

DateAdd(”[単位]”, [加算・減算数], ”[指定日]”)

[説明]:

指定日に対し指定した単位の期間(日数)を加算又は減算して値を返します。

[単位] 期間を表す単位文字を記述します。
具体的には以下表の単位文字いずれかを記述します。
※「”」(ダブルクォーテーション)で囲みます。
[加算・減算数] [指定日]に対して加算又は減算する数を記述します。
[指定日] 基準となる日時を記述します。
※「”」(ダブルクォーテーション)で囲みます。
単位文字 単位
yyyy

[記述例]:

DateAdd("yyyy", 1, "2019/6/12")
DateAdd("m", 1, "2019/6/12")
DateAdd("d", 1, "2019/6/12")
DateAdd("h", 1, "2019/6/12 10:35:40")
DateAdd("n", 1, "2019/6/12 10:35:40")
DateAdd("s", 1, "2019/6/12 10:35:40")

 

使い方

使い方について具体的に説明します。

指定年数を加算・減算した日付を返す

指定日に対し指定した年数を加算・減算した日付を返す方法について説明します。

[プログラミング例]:

単位を表す文字に「yyyy」を記述します。

Sub サンプル()

  MsgBox DateAdd("yyyy", 1, "2019/6/12")

End Sub

内容は、「指定日:2019/6/12に1年を足した日付を返し、MsgBoxで表示して下さい。」との意味になります。

f:id:m_kbou:20210423074217p:plain

※上記の記述例は、VBE(VBA記述画面)に記述しないと実行ができません。VBEの開き方についてはこちらを参考にして下さい。 

[実行例]:

①<実行>ボタンをクリックします。

f:id:m_kbou:20210423074232p:plain

②結果は以下の様に表示されます。1年を足し算するため、MsgBoxで「2020/06/12」が表示されます。

f:id:m_kbou:20210423074246p:plain

[サンプル]:

上記で説明したファイルをダウンロードできます。ご自由にお使い下さい。

drive.google.com

指定した年数を加算・減算した日付を返す方法についての説明は以上です。

 

指定月数を加算・減算した日付を返す

指定日に対し指定した月数を加算・減算した日付を返す方法について説明します。

[プログラミング例]:

単位を表す文字に「m」を記述します。

Sub サンプル()

  MsgBox DateAdd("m", 1, "2019/6/12")

End Sub

内容は、「指定日:2019/6/12に1ヵ月を足した日付を返し、MsgBoxで表示して下さい。」との意味になります。

f:id:m_kbou:20210423074545p:plain

※上記の記述例は、VBE(VBA記述画面)に記述しないと実行ができません。VBEの開き方についてはこちらを参考にして下さい。 

[実行例]:

①<実行>ボタンをクリックします。

f:id:m_kbou:20210423074559p:plain

②結果は以下の様に表示されます。1ヵ月を足し算するため、MsgBoxで「2019/07/12」が表示されます。

f:id:m_kbou:20210423074614p:plain

[サンプル]:

上記で説明したファイルをダウンロードできます。ご自由にお使い下さい。

drive.google.com

指定した月数を加算・減算した日付を返す方法についての説明は以上です。

 

指定日数を加算・減算した日付を返す

指定日に対し指定した日数を加算・減算した日付を返す方法について説明します。

[プログラミング例]:

単位を表す文字に「d」を記述します。

Sub サンプル()

  MsgBox DateAdd("d", 1, "2019/6/12")

End Sub

内容は、「指定日:2019/6/12に1日を足した日付を返し、MsgBoxで表示して下さい。」との意味になります。

f:id:m_kbou:20210423074835p:plain

※上記の記述例は、VBE(VBA記述画面)に記述しないと実行ができません。VBEの開き方についてはこちらを参考にして下さい。 

[実行例]:

①<実行>ボタンをクリックします。

f:id:m_kbou:20210423074850p:plain

②結果は以下の様に表示されます。1日を足し算するため、MsgBoxで「2019/06/13」が表示されます。

f:id:m_kbou:20210423074937p:plain

[サンプル]:

上記で説明したファイルをダウンロードできます。ご自由にお使い下さい。

drive.google.com

指定した日数を加算・減算した日付を返す方法についての説明は以上です。

 

指定時間を加算・減算した日時を返す

指定日時に対し指定した時間を加算・減算した日時を返す方法について説明します。

[プログラミング例]:

単位を表す文字に「h」を記述します。

Sub サンプル()

  MsgBox DateAdd("h",  1, "2019/6/12 10:35:40")

End Sub

内容は、「指定日:2019/6/12 10:35:40に1時間を足した日付を返し、MsgBoxで表示して下さい。」との意味になります。

f:id:m_kbou:20210423075114p:plain

※上記の記述例は、VBE(VBA記述画面)に記述しないと実行ができません。VBEの開き方についてはこちらを参考にして下さい。 

[実行例]:

①<実行>ボタンをクリックします。

f:id:m_kbou:20210423075132p:plain

②結果は以下の様に表示されます。1時間を足し算するため、MsgBoxで「2019/06/12 11:35:40」が表示されます。

f:id:m_kbou:20210423075212p:plain

[サンプル]:

上記で説明したファイルをダウンロードできます。ご自由にお使い下さい。

drive.google.com

指定した時間を加算・減算した日時を返す方法についての説明は以上です。

 

指定分数を加算・減算した日時を返す

指定日時に対し指定した分数を加算・減算した日時を返す方法について説明します。

[プログラミング例]:

単位を表す文字に「n」を記述します。(「m」と間違えやすいので注意して下さい)

Sub サンプル()

  MsgBox DateAdd("n", 1, "2019/6/12 10:35:40")

End Sub

内容は、「指定日:2019/6/12 10:35:40に1分を足した日付を返し、MsgBoxで表示して下さい。」との意味になります。

f:id:m_kbou:20210423075325p:plain

※上記の記述例は、VBE(VBA記述画面)に記述しないと実行ができません。VBEの開き方についてはこちらを参考にして下さい。 

[実行例]:

①<実行>ボタンをクリックします。

f:id:m_kbou:20210423075339p:plain

②結果は以下の様に表示されます。1分を足し算するため、MsgBoxで「2019/06/12 10:36:40」が表示されます。

f:id:m_kbou:20210423075354p:plain

[サンプル]:

上記で説明したファイルをダウンロードできます。ご自由にお使い下さい。

drive.google.com

指定した分数を加算・減算した日時を返す方法についての説明は以上です。

 

指定秒数を加算・減算した日時を返す

指定日時に対し指定した秒数を加算・減算した日時を返す方法について説明します。

[プログラミング例]:

単位を表す文字に「s」を記述します。

Sub サンプル()

  MsgBox DateAdd("s", 1, "2019/6/12 10:35:40")

End Sub

内容は、「指定日:2019/6/12 10:35:40に1秒を足した日付を返し、MsgBoxで表示して下さい。」との意味になります。

f:id:m_kbou:20210423075531p:plain

※上記の記述例は、VBE(VBA記述画面)に記述しないと実行ができません。VBEの開き方についてはこちらを参考にして下さい。 

[実行例]:

①<実行>ボタンをクリックします。

f:id:m_kbou:20210423075545p:plain

②結果は以下の様に表示されます。1秒を足し算するため、MsgBoxで「2019/06/12 10:35:41」が表示されます。

f:id:m_kbou:20210423075619p:plain

[サンプル]:

上記で説明したファイルをダウンロードできます。ご自由にお使い下さい。

drive.google.com

指定した秒数を加算・減算した日時を返す方法についての説明は以上です。

 

プログラミング(サンプル)

プログラミング事例を紹介します。

www.osiete-excelvba.work

 

おわりに

今回はDateAdd関数の使い方について説明しました。類似の関数にDateDiff関数(2つの日付の間隔を表示)があります。こちらも合わせて覚えておくと、データ処理の幅が広がります。