Home » エクセルマクロ・Excel VBAの使い方 » VBA関数 » VBAでシステム日付を取得する-Date関数・Now関数

VBAでシステム日付を取得する-Date関数・Now関数

動作検証バージョン:Windows 11 Home + 64bit Excel バージョン 2407(ビルド17820.20000クイック実行)ベータチャネル

「vba システム日付 取得」
といった検索キーワードでアクセスがありました。

VBAを使って、OSが認識している現在の日付(システム日付)を取得するにはどうすればいいのか調べていた方による検索でしょう。

[スポンサードリンク]

VBAではDate関数またはNow関数でシステム日付を取得できる

結論からお伝えすると、Date関数またはNow関数を使うことで、システム日付を取得できます。

2024年7月10日の20時21分45秒に、以下のSubプロシージャを実行すると、
「2024/07/10」
「2024/07/10 20:21:45」
とメッセージボックスが表示されます。

Sub システム日付を取得する()
 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関数

「VBA関数」の記事一覧

検索


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

.