「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関数でも、結果は同じであることから確認しましょう。
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の違い