サイトについて      連絡先   検索

VBA DateAdd 関数

はじめに

Excel VBA マクロの DateAdd 関数を紹介します。

DateAdd 関数は、日時に指定した時間を加算して返します。

1 週間後の日付を取得したいときや、10 分前の時刻を取得したいときに使用します。

  • 目次
    • 構文
    • 解説
    • 使用例

構文

DateAdd(単位, 加算時間, 日時)
日時単位加算時間を計算した結果を取得します。

引数「単位」引数「加算時間」の単位を表す文字を指定します。
引数「加算時間」引数「日時」に加算する時間を数値で指定します。
引数「日時」元になる日時を指定します。
戻り値の型日付型 (Date)

引数「単位」

単位の文字 説明
yyyy
m
d
h
n
s
q四半期
y通年での日数
w平日
ww

解説

引数「単位」がdなら日を、hなら時を加えた日時を返します。

日にちを計算するなら単位d(日) を使用します。y(通年での日数) やw(平日) は使いません。

引数「単位」がq(四半期) のとき、引数「加算時間」が1なら 3 ヵ月後の日付を返します。3 ヵ月後にその日がない時 (31日など) は、その月の最後の日付を返します。1月31日の 3 ヵ月後は 4月30日です。

引数「単位」がww(週) のとき、引数「加算時間」が1なら 7 日後の日付を返します。

引数「加算時間」が負の値なら、引数「日時」より過去の日時を返します。

引数「日時」が時刻なら、その日付は日付型の初期値1899/12/30になります。

計算後の日時が日付型の範囲西暦100年1月1日 ~ 西暦9999年12月31日を超えるときはエラーが発生します。

関数を使わなくても日付型 + 1で明日の日付を、日付型 + 時刻で時刻を求められます。

使用例


Dim dt As Date
dt = "2013/10/01 2:04:06"

Dim d As Date

d = DateAdd("yyyy", 1, dt) ' 年
Debug.Print(d) ' 2014/10/01 2:04:06

d = DateAdd("m", 1, dt)    ' 月
Debug.Print(d) ' 2013/11/01 2:04:06

d = DateAdd("d", -1, dt)   ' 日
Debug.Print(d) ' 2013/09/30 2:04:06

d = DateAdd("h", -1, dt)   ' 時
Debug.Print(d) ' 2013/10/01 1:04:06

d = DateAdd("n", 10, dt)   ' 分
Debug.Print(d) ' 2013/10/01 2:14:06

d = DateAdd("s", 10, dt)   ' 秒
Debug.Print(d) ' 2013/10/01 2:04:16

d = DateAdd("d", 1, "1:2:3")
Debug.Print(d) ' 1899/12/31 1:02:03

関数を使わないで計算する。


Dim dt As Date
dt = "2013/10/01 2:04:06"

Dim d As Date

d = dt + 1
Debug.Print(d) ' 2013/10/02 2:04:06

d = dt + #1:00:00#
Debug.Print(d) ' 2013/10/01 3:04:06
  • 目次
    • 構文
    • 解説
    • 使用例