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

関連記事

コメント

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