Home » エクセルマクロ・Excel VBAの使い方 » VBA関数 » DateSerial関数で当月末日を

DateSerial関数で当月末日を

プログラミング的な概念をどの言語で学習するかに関わらず、月末や月初の日付を求める考え方は、早めに理解しておくほうがイイでしょう。

「dateserial 当月末日を求める」
といった検索で、このサイト『インストラクターのネタ帳』へアクセスがありました。VBAのDateSerial関数を使って月末の日にちを取得するには、どうすればいいのかを探していらした方による検索キーワードです。

[スポンサードリンク]

DateSerialで当月末日を求めるサンプル

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

Sub 当月末日を求める()
 MsgBox _
  DateSerial(Year(Now), Month(Now) + 1, 0)
End Sub

DateSerial関数の第1引数には、実行している日の年を表す数値を指定するため「Year(Now)」を、第2引数には実行日の翌月を表す数値を指定するため「Month(Now) + 1」を、第3引数には「0」を指定しています。

イミディエイトウィンドウで日付系関数を確認しましょう

このような日付の計算に慣れていない方は、イミディエイトウィンドウで、日付系関数の挙動を確認しましょう。

Now・Year・Month関数の確認

2021年の7月中に操作している場合、イミディエイトウィンドウに
  ? Year(Now)
と入力して[Enter]キーを押せば、Now関数で取得した今の、年月日時刻から年を表す数値「2021」が出力されます。つづいて、
  ? Month(Now)
と入力して[Enter]キーを押せば、Now関数で取得した今の、年月日時刻から月を表す数値「7」が出力されます。

もちろん「Month(Now)」に足し算を行って、
  ? Month(Now)+1
と入力して[Enter]キーを押せば「8」が出力されます。

DateSerialの確認

DateSerial関数の基本的な挙動も確認しましょう。
  ? DateSerial(2021, 7+1, 1)
と入力して[Enter]キーを押せば「2021/08/01」が出力されます。つづいて
  ? DateSerial(2021, 7+1, 0)
と入力して[Enter]キーを押せば、2021年8月0日に該当する「2021/07/31」が出力されます。

ここで「2021」「7+1」を手入力していますが、これを先ほど確認したNow・Year・Month関数を使っているのが、
  DateSerial(Year(Now), Month(Now) + 1, 0)
です。

DateSerialの第2引数に「13」を

年が、「2021」から「2022」のように、変更になる場合に正しい結果が得られるのか気になる方もいらっしゃるかもしれません。

DateSerial関数の第2引数に「13」を入力して試してみましょう。
  ? DateSerial(2021, 13, 0)
と入力して[Enter]キーを押せば、2021年の13月0日に該当する「2021/12/31」が出力されます。

最終更新日時:2021-07-19 14:18

[スポンサードリンク]

Home » エクセルマクロ・Excel VBAの使い方 » VBA関数 » DateSerial関数で当月末日を

「VBA関数」の記事一覧

検索


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

.