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

関連記事

コメント

タイトルとURLをコピーしました