このサイトの記事内では「アフィリエイト広告」などの広告を掲載している場合があります。
消費者庁が問題としている「誇大な宣伝や表現」とならないよう配慮しコンテンツを制作しておりますのでご安心ください。
問題のある表現が見つかりましたらお問い合わせよりご一報いただけますと幸いです。

【VBA】日付を加算する方法(DateAdd関数)

2023年3月31日

【VBA】日付を加算する方法(DateAdd関数)

今回はVBAで日付を加算(例えば翌日にする)する方法を紹介します。

日付だけであれば+や-によって加算することができますが、DateAdd関数を使うのがおすすめです。
(この関数を使えば日付だけでなく月や年も加算できます)

この記事では次のようなことが分かります。

  • 日付を加算する
  • 日付を減算する
  • 月や年を加算/減算する
  • 分や秒を加算/減算する

VBAが難しいと感じたら
ココナラにてVBAの作成依頼を受け付けています。
ご依頼・ご相談はこちらから

日付を加算/減算する方法(DateAdd関数)

Sub DateAdd1()
    
    Dim dt As Date
    dt = Date '今日
    
    Debug.Print dt '今日
    Debug.Print DateAdd("d", 1, dt) '前日
    Debug.Print DateAdd("d", -1, dt) '翌日
End Sub

DateAddは次のように引数を指定します。

DateAdd(単位, 加算時間, 日時)

今回は日付を変更するため単位には"d"を指定しています。("d"はDayのd)

サンプルコードでは加算時間に1と-1を入れて、それぞれ前日と翌日の日付を得ています。

そして、日時には基準となる日付を入れます。

サンプルコードでは日時に今日の日付が入るようにしています。

このように日付を加算/減算するときにはDateAdd関数に"d"を入れます。

月や年を加算/減算する方法(DateAdd関数)

Sub DateAdd2()
    
    Dim dt As Date
    dt = Date '今日
    
    Debug.Print dt '今日
    Debug.Print DateAdd("m", 1, dt) '翌月
    Debug.Print DateAdd("yyyy", 1, dt) '翌年
End Sub

DateAdd関数は日付だけでなく、月や年の加算/減算も可能です。

日付では"d"を入れましたが、ここを"m"や"yyyy"とすれば月や年の加算/減算ができます。

時間や分や秒も加算/減算可能(DateAdd関数)

Sub DateAdd3()
    
    Dim str As String
    Dim dt As Date
    
    str = "2023/03/03 0:00:00"
    dt = CDate(str) '日付型に変換
    
    Debug.Print DateAdd("h", 1, dt) '1時間後
    Debug.Print DateAdd("n", 1, dt) '1分後
    Debug.Print DateAdd("s", 1, dt) '1秒後
End Sub

さらに時間や分や秒も加算/減算ができます。

単位を"h"、"n"、"s"とすれば時間、分、秒の加算/減算ができます。

なお、基準となる日付は分かりやすくするために秒("2023/03/03 0:00:00″)まで記載しています。

秒までの日付をString型で作ってCDate関数で日付型に変換しています。

CDate関数については↓の記事をご覧ください。

《VBA上級者になりたい人へ》
VBA上級者を目指したい人にはパーフェクトExcel VBA一択です。
この本を読み切れば間違いなくVBA上級者になれます。

VBAが難しいと感じたら
ココナラにてVBAの作成依頼を受け付けています。
ご依頼・ご相談はこちらから

VBA

Posted by やろまい