VBATips

当月1日、翌月1日、翌々月1日を簡単に求める【DateSerial関数】【ExcelVBA】

当月1日、翌月1日、翌々月1日を簡単に求めたい

カレンダーやスケジュール生成の際、当月、翌月、翌々月の1日をコードで生成したい場合があります。
DateSerial関数を使用する事で簡単に求める事が出来ます。
月末の判断と違って、シンプルです。

’■DateSerial関数で当月1日、翌月1日、翌々月1日を求める
Public Sub sample()

    '■処理タイミングの当月1日、翌月1日、翌々月1日を取得
    MsgBox DateSerial(Year(Now), Month(Now), 1)   '2022/11/12実行→2022/11/01
    MsgBox DateSerial(Year(Now), Month(Now)+1, 1) '2022/11/12実行→2022/12/01
    MsgBox DateSerial(Year(Now), Month(Now)+2, 1) '2022/11/12実行→2023/01/01

End Sub

まとめ

DateSerial関数自体は別途こちらの記事を参照ください。こちらのページではお伝えしません。

翌月末の日付を算出するのは「翌々月を出して、そこから前月末日を出す形」ですが、
1日なので、そのままDay部分は1なのでシンプルです。
スケジュールやカレンダーなどの際、翌月1日とかどうだったかな?と調べるための記事ですね。
コピペでお使いください。

付録

月末日の一覧表をまとめてます。
小学生の頃に「西向く士(にしむくさむらい)」で覚えましたよね。

月末日 備考
1月 31
2月 28 閏年は29日
3月 31
4月 30
5月 31
6月 30
7月 31
8月 31
9月 30
10月 31
11月 30
12月 31

関連記事

コメント