Excel VBAでは、指定した日付に対して「10日後」や「3か月後」などの日付計算を簡単に行うことができます。
こうした日付の加算・減算は、納期の自動計算やスケジュール管理など、実務において非常に頻繁に登場する処理です。
この記事では、DateAdd
関数を用いた未来・過去の日付計算の基本と活用例を丁寧に解説いたします。
目次
DateAdd関数の基本構文
DateAdd(単位, 加算値, 基準日付)
- 単位:日なら
"d"
、月なら"m"
、年なら"yyyy"
など - 加算値:未来なら正の値、過去なら負の値
- 基準日付:起点となる日付(Date型)
実用コード例:日数・月数の加減
Sub CalculateFutureDates()
Dim baseDate As Date
Dim r As Long
baseDate = Range("B3").Value ' 起点となる日付(例:2025/7/20)
For r = 3 To 8
Cells(r, "G").Value = DateAdd(Cells(r, "D").Value, 10, baseDate) ' 10単位後
Cells(r, "H").Value = DateAdd(Cells(r, "D").Value, -10, baseDate) ' 10単位前
Next
End Sub
補足:
- 列 D には
"d"
や"m"
のような単位指定文字列が入力されている想定です。 "d"
を指定すれば10日後、"m"
なら3か月後(10ヶ月後・前)など柔軟な処理が可能です。
対応する単位の一覧(抜粋)
単位 | 意味 | 例:10単位加算 |
---|---|---|
"d" | 日 | 10日後 |
"m" | 月 | 10か月後 |
"yyyy" | 年 | 10年後 |
"ww" | 週 | 10週後 |
"h" | 時 | 10時間後 |
実務での活用例
- 納期(受注日 + 日数)を自動で計算
- 支払予定日を指定月数後に設定
- 契約開始日から数か月後の満期日を算出
- 登録日から30日以内の有効期限チェック など
まとめ|VBAでの未来・過去の日付計算はDateAddで簡潔に
VBAで日付の加算・減算を行うには、DateAdd
関数を使うのが最もシンプルかつ強力です。
- 単位は
"d"
(日)や"m"
(月)など柔軟に指定可能 - 負の数を使えば過去の日付も簡単に算出
- ループ処理と組み合わせることで、複数データの一括処理も容易
正確なスケジュール計算は、ビジネスの信頼性向上に直結します。
本記事を参考に、自動化された日付処理の仕組みをぜひ構築してみてください。