VBATips

当月末日(月の最終日)を簡単に求めたい【DateSerial関数】【ExcelVBA】

当月末の日付(月の最終日)を簡単に求めたい

カレンダーをVBAで作成するとなると、当月末を簡単に求められた方がよいです。
DateSerial関数を使用する事で簡単に求める事が出来ます。

'■DateSerial関数で当月末日を求める
Public Sub sample()

    '■処理タイミングの当月末を取得 2022/06/06実行→2022/06/30
    MsgBox DateSerial(Year(Date), Month(Date) + 1, 0)

    '■年跨ぎをしっかりするなら
    If Month(Date) = 12 Then
        MsgBox DateSerial(Year(Date), Month(Date) + 1, 0)
    Else
        MsgBox DateSerial(Year(Date) + 1, Month(Date) + 1, 0)
    End If
End Sub

まとめ

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

当月末の日付を算出するのは「翌月を出して、そこから前月末日を出す形」なので少しクセがあります。

付録

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

月末日 備考
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

関連記事

コメント