和風スパゲティのレシピ

日本語でコーディングするExcelVBA

現在の日時を取得する - Date/Time/Now関数

現在の日時を取得する方法を解説します。

Date/Time/Now関数を使用します。

日付・時刻ともに「Date型」で取得されますので、
テキストとして扱いたい場合はFormat関数を利用します。

基本構文

Dim 本日の日付 As Date
本日の日付 = Date

Dim 現在時刻 As Date
現在時刻 = Time

Dim 現在の日時 As Date
現在の日時 = Now

サンプルコード

日付型としてそのまま使用する

' n日後などの計算
Dim 期限日 As Date
期限日 = Date + 7 ' 1週間後を取得

' 日付型のセルとの比較など
If Cells(R, 2) > Date Then ' 未来の日付かを判定

文字列型として好きな形式にして使用する

' yyyy/mm/dd(aaa) 形式でセルに出力する
Range("A1") = Format(Date, "yyyy/m/d (aaa)")

' ファイル名やフォルダ名にyyyymmddを使う
Dim ファイル名 As String
ファイル名 = "集計データ_" & Format(Date, "yyyymmdd") & ".xlsx"

' ファイル名やフォルダ名にyyyymmddhhmmを使う
Dim ファイル名2 As String
ファイル名2 = "集計データ_" & Format(Now, "yyyymmddhhmm") & ".xlsx"

解説

現在の日時を取得するには Date/Time/Now関数を使用します。

日付だけを取得したい場合はDate関数、時刻だけを取得したい場合はTime関数、
両方を同時に取得したい場合はNow関数を使用します。


ただしFormat関数を使用する際は使わない部分を無視することができるため、
日付だけを取得する際にNow関数を用いても問題ありません。

Debug.Print Format(Date, "yyyymmdd") ' 20251103
Debug.Print Format(Now, "yyyymmdd") ' 20251103

 
ファイル名やフォルダ名でhhmmをつけることもよくある場合は、
すべてNow関数に統一しておくのも一つの手と思います。


ちなみにDate型の日付をそのまま文字列として結合しようとすると、
ワークシートとは違って日付文字列として結合ができます。

アプリ 入力 結果
Excel =TODAY()&"時点" 45964時点
VBA Date & "時点" 2025/11/3時点

シート数式ではそのまま「&」でつなげたときシリアル値になってしまうのに対し、
VBAでは日付文字列として結合することが可能です。


しかし、この時取得される日付文字列はWindowsの設定に左右されるため、
ユーザーごとに違う値になってしまう危険性をはらんでいます。

※ ユーザーが曜日も表示していればこの日付文字列も曜日を含むようになります。


日付を文字列として使う場合はVBAの型変換に頼ることはせず、
Format関数で表示形式を明示して変換してください。

Date & "時点" ' × デフォルトは「2025/11/3時点」だがユーザー設定に左右される
Format(Date, "yyyy/m/d") & "時点" ' ○ 確実に「2025/11/3時点」になる。