この記事ではNow関数の使い方と注意点について解説します。
他のよく使うVBA関数一覧はこちら。
Now関数の使い方と注意点
Now関数は、現在のシステム日付と時刻の両方を取得する関数です。
実行したその瞬間の「日付+時刻」の情報をDate型で返します。
構文
Now
- 戻り値 : 現在のシステム日付と時刻(Date型)
使用例
現在の日時を表示する
Sub Sample()
Debug.Print Now
End Sub
▶ 出力結果(実行時が2025年1月1日 午後3時45分12秒の場合)
2025/01/01 15:45:12
日付・時刻の一部だけを取り出す
- 日付だけ → Date関数
- 時刻だけ → Time関数
Sub Sample()
Debug.Print "Now: " & Now
Debug.Print "Dateのみ: " & Date
Debug.Print "Timeのみ: " & Time
End Sub
▶ 出力結果(実行時が2025年1月1日 午後3時45分12秒の場合)
Now: 2025/01/01 15:45:12
Dateのみ: 2025/01/01
Timeのみ: 15:45:12
1時間後の日時を求める
Sub Sample()
Debug.Print Now + TimeSerial(1, 0, 0)
End Sub
TimeSerial関数とは?
TimeSerial(h, m, s) は、指定された時・分・秒から時刻値(Date型)を返す関数です。
▶ 出力結果(実行時が2025年1月1日 午後3時45分12秒の場合)
2025/01/01 16:45:12
⚠️注意
日時の計算は「1日 = 1.0」のシリアル値
日時はExcelの内部仕様で「1日 = 1.0」として数値計算されます。
- Now + 1 → 翌日同時刻
- Now + 0.25 → 6時間後(24時間 × 0.25)
Sub Sample()
Debug.Print "現在日時: " & Now
Debug.Print "1日後: " & Now + 1
Debug.Print "0.5日後: " & Now + 0.5 '=12時間後
Debug.Print "0.25日後:" & Now + 0.25 '=6時間後
End Sub
▶ 出力結果(実行時が2025年1月1日 午後3時45分12秒の場合)
現在日時: 2025/01/01 12:00:00
1日後: 2025/01/02 12:00:00
0.5日後: 2025/01/01 18:00:00
0.25日後: 2025/01/01 15:00:00
セルに書き込むと日時形式で表示される
Sub Sample()
Range("A1").Value = Now
End Sub
▶ 出力結果(実行時が2025年1月1日 午後3時45分12秒の場合)
セルA1に 2025/1/1 15:45 のように表示される

表示形式が画像とは違う場合もあります
表示形式はエクセルの書式設定やPCの書式設定により異なる場合があります。
システム時計に依存
Now関数はPCのシステム日付と時刻を参照しているため、
システム時刻が正しく設定されていない場合は誤った日時を返します。
関連するVBA関数
- Date関数(日付のみ)
- Time関数(時刻のみ)
- TimeSerial関数
その他のVBA関数
【Excel VBA】VBAでよく使う関数一覧&基本の使い方