当月末の日付(月の最終日)を簡単に求めたい
カレンダーを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) + 1, 1, 0)
Else
MsgBox DateSerial(Year(Date), 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 |




コメント