今回はExcel VBAのDateSerial関数を使用して日付(今月、先月、先々月)を取得する方法を紹介します。
個人的にはファイル名に「年月日」+「ファイル名」を付けて請求書の作成に使用しています。
「20200131請求書.xlsx」このような使い方が多いですね。
構文
DateSerial(Year,Month,Day)
指定した年月日を取得します。
サンプル1
Sample1のコードを実行することで今月、先月、先々月を取得します。
DateSerial関数を使用して引数に指定した月(Month)を取得します。
1 2 3 4 5 6 7 8 9 |
Sub Sample1() Dim M As Date: M = DateSerial(Year(Date), Month(Date) + 1, 0) Dim M1 As Date: M1 = DateSerial(Year(Date), Month(Date), 0) Dim M2 As Date: M2 = DateSerial(Year(Date), Month(Date) - 1, 0) MsgBox "今月は" & Month(M) & "月" & Chr(13) & "先月は" & Month(M1) & "月" & Chr(13) & "先々月は" & Month(M2) & "月" End Sub |
実行結果(1月の場合)
サンプル2
Sample2を実行することで今月、先月、先々月の「月末日」を取得します。
DateSerial関数の引数に指定した年(Year)、月(Month)、日(Day)を拾うことができます。
※日(Day)の値を0にすると月末日を取得
うめ
年が変わっても気にしなくて良いので便利です!
1 2 3 4 5 6 7 8 9 |
Sub Sample2() Dim M As Date: M = DateSerial(Year(Date), Month(Date) + 1, 0) '今月 Dim M1 As Date: M1 = DateSerial(Year(Date), Month(Date), 0) '先月 Dim M2 As Date: M2 = DateSerial(Year(Date), Month(Date) - 1, 0) '先々月 MsgBox "今月は" & Year(M) & "年" & Month(M) & "月" & Day(M) & "日" & Chr(13) & "先月は" & Year(M1) & "年" & Month(M1) & "月" & Day(M1) & "日" & Chr(13) & "先々月は" & Year(M2) & "年" & Month(M2) & "月" & Day(M2) & "日" End Sub |
実行結果(2021年1月の場合)
まとめ
仕組みさえ理解すればあとは必要に応じて組合せるだけで手軽に年月日をを取得できるので、ぜひご活用ください。