「vba システム日付 取得」
といった検索キーワードでアクセスがありました。
VBAを使って、OSが認識している現在の日付(システム日付)を取得するにはどうすればいいのか調べていた方による検索でしょう。
VBAではDate関数またはNow関数でシステム日付を取得できる
結論からお伝えすると、Date関数またはNow関数を使うことで、システム日付を取得できます。
2024年7月10日の20時21分45秒に、以下のSubプロシージャを実行すると、
「2024/07/10」
「2024/07/10 20:21:45」
とメッセージボックスが表示されます。
Dim dtm_date As Date
dtm_date = Date
MsgBox dtm_date
Dim dtm_now As Date
dtm_now = Now
MsgBox dtm_now
End Sub
VBAの場合、Date関数でシステム日付を、Now関数でシステム日付+システム時刻を取得できるということです。
Date・Nowの戻り値は実際にはDate型
オブジェクトブラウザーでDate関数とNow関数を確認すると、戻り値はいずれもVariantと定義されていますが、
実際にはDate型のデータが返されます。
ですから上記のSubプロシージャでは
Dim dtm_date As Date
Dim dtm_now As Date
とDate型で変数宣言しています。
念のため、上記のSubプロシージャを以下のように修正してから実行してみてください。
Sub システム日付を取得する() Dim dtm_date As Variant ''Date dtm_date = Date ''MsgBox dtm_date Dim dtm_now As Variant''Date dtm_now = Now ''MsgBox dtm_now Stop End Sub
Stopステートメントで中断したら、拙著『いちばんやさしいExcelVBAの教本』などで多用しているローカルウィンドウを表示して確認すると、Date関数・Now関数の戻り値を代入した、Variant型で宣言したいた変数がいずれも実際にはDate型である様子を、
上図のように確認できます。
Home » エクセルマクロ・Excel VBAの使い方 » VBA関数 » VBAでシステム日付を取得する-Date関数・Now関数