はじめに:カレンダーを指でなぞる日々にさようなら
こんにちは!ぐーです。
突然ですが、日々の業務でこんな経験をしたことはありませんか?
上司やお客様から「この契約の更新日、今日から45日後にしておいて」と言われ、卓上カレンダーをめくりながら指折り数える……。
これは意外と神経を使う作業ですし、何より貴重な時間がもったいないですよね。
もし数え間違えれば大きなミスに繋がる恐れもあり、精神的な負担も小さくありません。
そこで今回は、そんな手間と不安を一気に解消するVBAの「DateAdd(デイト・アド)関数」をご紹介します。
プログラミングに詳しくない方でも、コピー&ペーストするだけで今すぐ使えるコードも用意しましたので、ぜひ活用してみてください。
DateAdd関数とは?
DateAdd関数とは、Excelに対して「基準となる日から、指定した分だけ時間を進めて(あるいは戻して)!」と指示を出す命令文です。
この関数を使えば、「今日から3ヶ月後はいつ?」「45日後は何曜日?」といった計算を、わずか0.1秒で正確に弾き出してくれます。
まさに、デスクワークにおける「頼れる相棒」といえる存在です。
コピペで使える!実行コード
では、実際のコードを確認しましょう。VBE(マクロを記述する画面)に以下の内容を貼り付けるだけで準備完了です。
今回は、実行すると結果が画面にパッと表示されるように作成しました。
Sub MiraiNoHizuke()
' 結果をメッセージボックスで表示します
Dim todayDate As Date
todayDate = Date ' 今日の日付をセット
' ---------------------------------------------
' 1. 「日数」を足す場合 ("d" は Day の d)
' ---------------------------------------------
' 今日から 45日後 を計算
MsgBox "今日から45日後は、" & DateAdd("d", 45, todayDate) & " です。", vbInformation, "日数の計算"
' 今日から 10日前 を計算 (マイナスをつければ過去に戻れます)
MsgBox "10日前は、" & DateAdd("d", -10, todayDate) & " でした。", vbInformation, "過去の計算"
' ---------------------------------------------
' 2. 「月数」を足す場合 ("m" は Month の m)
' ---------------------------------------------
' 今日から 3ヶ月後 を計算
MsgBox "3ヶ月後は、" & DateAdd("m", 3, todayDate) & " です。", vbInformation, "月数の計算"
End Sub
使い方と活用のポイント
コードの中にあるDateAdd(“d”, 45, todayDate)という部分がポイントです。
かっこの中は、以下の3つの要素でできています。
- “d” や “m”:何を足すか(d=日、m=月、yyyy=年)
- 45:どれくらい足すか(数字)
- todayDate:いつを基準にするか(日付)
これさえ覚えておけば、「来年の同日は?」「1週間前は?」といった計算も自由自在になります。
カレンダーとにらめっこする時間は終わりにして、スマートに業務を進めましょう!
VBAを独学で学び、業務自動化に5年以上携わってきた私が、「本当に実務で役立った!」と感じた2冊を紹介します。 もう本選びで失敗したくない方は、よければ参考にしてみてください。

コメント