Home » エクセルマクロ・Excel VBAの使い方 » VBA関数 » VBAで翌月1日を取得する-DateSerial・Now・Year・Month

VBAで翌月1日を取得する-DateSerial・Now・Year・Month

対象:Excel2007, Excel2010, Excel2013, Windows版Excel2016

日付に関連して、Excelのご質問をいただくことがよくあります。

例えば、
「翌月の1日の日付データを表示するには?」
というご質問は、Excelでも、VBA(Visual Basic for Applications)でもいただきます。

このサイト・インストラクターのネタ帳のアクセスログにも
「excel vba 翌月 月初日」
「エクセル マクロ 翌月1日を設定」
といった検索キーワードが見られます。

[スポンサードリンク]

翌月1日を取得するサンプルマクロ

以下のSubプロシージャを実行すると、実行した日の、翌月の1日が、メッセージボックスに表示されます。

Sub 翌月1日を取得する()
 MsgBox _
   DateSerial(Year(Now), Month(Now) + 1, 1)
End Sub

日付計算の基本

考え方はワークシート上での日付計算と同じです。

Excelのワークシート上で、翌月の1日を取得する場合、

=DATE(YEAR(TODAY()), MONTH(TODAY())+1, 1)

という数式にするのと同じです。

VBAの場合Year関数の引数にNow関数を指定すれば、今現在の日時から年を表す数字が取得できます。

DateSerial(Year(Now) , Month(Now) + 1, 1)

Excelの場合にYEAR関数の引数にTODAY関数を指定すれば、今日の日付から年を表す数字が取得できるのと同じ考え方です。

DATE(YEAR(TODAY()), MONTH(TODAY())+1, 1)


VBAの場合Month関数の引数にNow関数を指定すれば、今現在の日時から月を表す数字が取得できます。

DateSerial(Year(Now), Month(Now) + 1, 1)

Excelの場合にMONTH関数の引数にTODAY関数を指定すれば、今日の日付から月を表す数字が取得できるのと同じ考え方です。

DATE(YEAR(TODAY()), MONTH(TODAY())+1, 1)

翌月の1日を取得するために、Month関数・MONTH関数で返された、月の数字に「+1」するのも同じ考え方です。

DateSerial(Year(Now), Month(Now) + 1, 1)
DATE(YEAR(TODAY()), MONTH(TODAY())+1, 1)

年・月・日を表す数字を日付データにするために、VBAではDateSerial関数を使い、

DateSerial(Year(Now), Month(Now) + 1, 1)

Excelの場合にはDATE関数を利用しますが、考え方はやっぱり同じです。

DATE(YEAR(TODAY()), MONTH(TODAY())+1, 1)

最終更新日時:2023-07-31 16:57

[スポンサードリンク]

Home » エクセルマクロ・Excel VBAの使い方 » VBA関数 » VBAで翌月1日を取得する-DateSerial・Now・Year・Month

「VBA関数」の記事一覧

検索


Copyright © インストラクターのネタ帳 All Rights Reserved.

.