翌月末の日付(月の末日)を簡単に求めたい
請求書発行や入金予定リストなど、翌月末の月末日(未来日時)を知りたい事務職や経理職の方は多いと考えます。
DateSerial関数を使用する事で簡単に求める事が出来ます。
’■DateSerial関数で翌月末日を求める Public Sub sample_vba_dateserial() '■処理タイミングの翌月末を取得 2020/09/03実行→2020/10/31 MsgBox DateSerial(Year(Now), Month(Now) + 2, 0) '■指定した日の翌月末を取得 Dim sDate As Date sDate = "2020/10/01" '■翌月末日を取得 2020/11/30 MsgBox DateSerial(Year(sDate), Month(sDate) + 2, 0) '■翌々月末日を取得 2020/12/31 MsgBox DateSerial(Year(sDate), Month(sDate) + 3, 0) '■翌20日を取得 2020/11/20 MsgBox DateSerial(Year(sDate), Month(sDate) + 1, 20) End Sub
まとめ
DateSerial関数自体は別途こちらの記事を参照ください。こちらのページではお伝えしません。
本ページでは月末日の算出方法を説明します。
翌月末日
DateSerial(Year(sDate), Month(sDate) + 2, 0)と
Monthの部分を「Month(sDate) +2 」と翌々月を求め、
Dayの部分を「0」と指定する事で前月末日を求めます。
DateSerial(Year(sDate), Month(sDate) + 2, 0)と
Monthの部分を「Month(sDate) +2 」と翌々月を求め、
Dayの部分を「0」と指定する事で前月末日を求めます。
翌月20日
DateSerial(Year(sDate), Month(sDate) + 1, 20)と
Monthの部分を「Month(sDate) + 1」と翌月を求め、
Dayの部分を「20」と指定する事で20日を求めます。
DateSerial(Year(sDate), Month(sDate) + 1, 20)と
Monthの部分を「Month(sDate) + 1」と翌月を求め、
Dayの部分を「20」と指定する事で20日を求めます。
翌月末の日付を算出するのは「翌々月を出して、そこから前月末日を出す形」なので少しクセがあります。
事務職では、請求書や支払予定日など重宝するマクロのコードではないかと思います。
事務職では、請求書や支払予定日など重宝するマクロのコードではないかと思います。
付録
月末日の一覧表をまとめてます。
小学生の頃に「西向く士(にしむくさむらい)」で覚えましたよね。
月 | 月末日 | 備考 |
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 |
コメント