vbaを利用して、日付の計算を行う方法を紹介していきます。
1日後の日付や、1年前の日付など簡単に日付の計算をすることができます。
説明を行う前に備忘録として、よく使用する例を記載しておきます。
'変数宣言
Dim dt_add As Date
dt_add = DateAdd("yyyy", 1, "2022/01/10 10:00:00") '2023/01/10 10:00:00
dt_add = DateAdd("m", 1, "2022/01/10 10:00:00") '2022/02/10 10:00:00
dt_add = DateAdd("d", 1, "2022/01/10 10:00:00") '2022/01/11 10:00:00
dt_add = DateAdd("h", 1, "2022/01/10 10:00:00") '2022/01/10 11:00:00
dt_add = DateAdd("n", 1, "2022/01/10 10:00:00") '2022/01/10 10:01:00
dt_add = DateAdd("s", 1, "2022/01/10 10:00:00") '2022/01/10 10:00:01
日付の計算 DateAdd
日付の計算を行うには、DateAddを利用していきましょう。
記載方法は下記になります。
DateAdd(単位 ,期間 ,基準日)
これだけだとわかりにくいと思うので、例として、1年後の日付をを取得する方法を紹介します。
単位 :「yyyy」
期間 :「1」
基準日:「2022/01/10 10:00:00」
Private Sub CommandButton1_Click()
'変数宣言
Dim dt_add As Date
'日付加算
dt_add = DateAdd("yyyy", 1, "2022/01/10 10:00:00")
Debug.Print (dt_add)
End Sub
結果
2023/01/10 10:00:00
1年後の日付を取得することができました。
単位で年単位や月単位や日単位を指定することができ、あとは期間を設定することで、基準日から計算を行ってくれます。
単位の一覧
単位の一覧を掲載していきます。
単位 | 説明 |
yyyy | 年 |
q | 四半期 |
m | 月 |
y | 通年での日数 |
d | 日 |
w | 平日 |
ww | 週 |
h | 時間 |
n | 分 |
s | 秒 |
日付をマイナスする
余談ですが、DataAddは、マイナスの期間を指定することができます。
単位 :「d」
期間 :「-1」
基準日:「2022/01/10 10:00:00」
Private Sub CommandButton1_Click()
'変数宣言
Dim dt_add As Date
'日付加算
dt_add = DateAdd("d", -1, "2022/01/10 10:00:00")
Debug.Print (dt_add)
End Sub
結果
2022/01/09 10:00:00
期間の部分に「-1」を指定すると、結果は1日前の日付になっていますね。
まとめ
今回はvbaで日付の計算を行う方法を紹介しました。
日付の計算はよく使用するので、是非参考にしてみてください。
DateAdd(単位 ,期間 ,基準日)