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)

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

[スポンサード リンク]
[スポンサード リンク]

TrackBack:0

TrackBack URL

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

「VBA関数」の記事一覧

検索

最近じっくりと読まれている記事

.