VBA Date型の計算(足し算と引き算)

VBAで日付の足し算や引き算をする方法をまとめてみました。

たとえば、2021年5月17日の7日後は何日か?簡単に暗算できれば2021年5月24日って答えられるかもしれませんが、これをVBAでプログラミングするには、DateAdd関数を使います。

DateAdd関数

DateAdd関数は以下の引数をもちます。

  • interval : 加算する時間間隔を表す文字列です。
  • number : 加算する数字(マイナスでもOK)
  • date : 加算する日付(Date型)

以下のように、引数3つを指定してDateAdd関数を使用します。

    Dim DateValue1 As Date
    DateValue1 = #2/29/2020 10:00:00 AM#

    MsgBox dateadd("yyyy", 1, DateValue1)

加算する時間間隔を表す文字列

説明 実行例
yyyy dateadd(“yyyy”, 1, #2/29/2020 10:00:00 AM#) = 2021/02/28 10:00:00
q 四半期 dateadd(“q”, 1, #2/29/2020 10:00:00 AM#) = 2020/05/29 10:00:00
m dateadd(“m”, 1, #2/29/2020 10:00:00 AM#) = 2020/03/29 10:00:00
y 通年での日数 dateadd(“y”, 1, #2/29/2020 10:00:00 AM#) = 2020/03/01 10:00:00
d dateadd(“d”, 1, #2/29/2020 10:00:00 AM#) = 2020/03/01 10:00:00
w 平日 dateadd(“w”, 1, #2/29/2020 10:00:00 AM#) = 2020/03/01 10:00:00
ww dateadd(“ww”, 1, #2/29/2020 10:00:00 AM#) = 2020/03/07 10:00:00
h dateadd(“h”, 1, #2/29/2020 10:00:00 AM#) = 2020/02/29 11:00:00
n dateadd(“n”, 1, #2/29/2020 10:00:00 AM#) = 2020/02/29 10:01:00
s dateadd(“s”, 1, #2/29/2020 10:00:00 AM#) = 2020/02/29 10:00:01

返却される日付の表示形式はコントロールパネルの「地域」設定値によって決まる

上記の例では yyyy/MM/dd H:mm:ssですが、これはコントロールパネルの「地域」から取得されます。

この設定を変更することで表示形式を変更可能ですが、変更したい場合はFormat関数の使用を検討しましょう。

カテゴリー: VBA

コメントを残す

メールアドレスが公開されることはありません。