【VBA】過去の月を取得する(DateSerial関数)

【VBA】過去の月を取得する(DateSerial関数) VBA
この記事は約3分で読めます。

今回はExcel VBAのDateSerial関数を使用して日付(今月、先月、先々月)を取得する方法をご紹介します。

個人的にはファイル名に「年月日」+「ファイル名」を付けて請求書の作成に使用しています。

「20200131請求書.xlsx」このような使い方が多いですね。

スポンサーリンク
[ad01]

構文

DateSerial(Year,Month,Day)
指定した年月日を取得します。

サンプル1

Sample1のコードを実行することで今月、先月、先々月を取得します。
DateSerial関数を使用して引数に指定した月(Month)を取得します。

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月の場合)

Sample1の実行結果

サンプル2

Sample2を実行することで今月、先月、先々月の「月末日」を取得します。

DateSerial関数の引数に指定した年(Year)、月(Month)、日(Day)を拾うことができます。
※日(Day)の値を0にすると月末日を取得

うめ
うめ

年が変わっても気にしなくて良いので便利です!

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月の場合)

まとめ

仕組みさえ理解すればあとは必要に応じて組合せるだけで手軽に年月日をを取得できるので、ぜひご活用ください。

この記事が気に入ったら
いいね ! しよう

Twitter で

VBAを学習する時間が取れない人

VBAは我流で組むことができますが、初心者だと作業時間が多く掛かったり、間違った部分を見つけるのに苦労したります。

VBAが組めるようになれば便利なことも多いですが、仕事をしながら勉強するのは結構大変…。

もし時間に追われて思うようにいかないのであればココナラで「VBAを組める人」に依頼してみませんか?

個人で販売しているため価格も抑えらえれます
まずはこちらから無料会員登録をして依頼をしてましょう!


VBA
スポンサーリンク
[ad01]
うめをフォローする
梅屋ラボ
タイトルとURLをコピーしました