Home » エクセルマクロ・Excel VBAの使い方 » VBA関数 » DateSerialの引数でNowとDateの違い

DateSerialの引数でNowとDateの違い

動作検証バージョン:Windows版Excel(バージョン1810 ビルド11001.20074)

「now date 違い vba dateserial」
という検索キーワードに気が付きました。

DateSerial関数とは

VBAのDateSerial関数が、どのような関数なのかを最初に確認しておきましょう。

DateSerial関数の引数に、年・月・日に該当する数値を指定すると、日付を取得できます。例えば、
  DateSerial(2018, 11, 7)
と引数を指定すると、2018年11月7日を表す日付データを取得できます。

[スポンサードリンク]

DateSerialにYear・Month等を組み合わせる

このDateSerial関数に、日付データから年・月を表す数値を取得するYear関数・Month関数と、Now関数またはDate関数を組み合わせると、前月1日の日付を取得したり、翌月1日の日付を取得したりといったことができます。

「now date 違い vba dateserial」
と検索なさった方はこのようなケースで、Now関数とDate関数でどう違うのか調べていらしたのでしょう、

DateでもNowでも結果は同じ

上述のようなケースの場合、Date関数でもNow関数でも、結果は同じであることから確認しましょう。

Sub 先月の1日を取得する_Date関数()
 MsgBox _
   DateSerial(Year(Date), Month(Date) - 1, 1)
End Sub

Sub 先月の1日を取得する_Now関数()
 MsgBox _
   DateSerial(Year(Now), Month(Now) - 1, 1)
End Sub

上記2つのSubプロシージャいずれを実行しても、先月1日の日付がメッセージボックスに表示されます。

DateとNowで読みやすさは違う

結果は同じですけれど、どちらが意味を理解しやすいかといえば、Nowです。

VBAのDateは今日の日付を返す関数ですが、普通に「Date」という単語を見たときには、何らかの日付であることはわかりますけれど、いつの日付なのかはわかりません。

Dateから今日を想起できるのは、VBAのDateが今日の日付を返す関数だということを知っているからです(この意味でExcelのワークシートで今日の日付を返す関数TODAYのほうが優れています)。

また今回はDateSerial関数の引数として利用することを考えています。
「DateSerial」の中にも「Date」という単語が含まれてしまっていることから、
  DateSerial(Year(Date), Month(Date) - 1, 1)
のほうが、
  DateSerial(Year(Now), Month(Now) - 1, 1)
の意味はわかりにくくなっています。

最終更新日時:2021-07-15 10:51

[スポンサードリンク]

Home » エクセルマクロ・Excel VBAの使い方 » VBA関数 » DateSerialの引数でNowとDateの違い

「VBA関数」の記事一覧

検索


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

.