VBAで日時を扱っていると、次のようなことはありませんか?
- 現在日時を取得したい
- 処理時刻を記録したい
- ログやファイル名に日時を入れたい
このような場合は、Now関数を使うことで解決できます。
現在の「日付+時刻」を取得できる、VBAで非常に重要な関数です。
この記事では、Now関数の基本から実務で使える活用方法まで分かりやすく解説します。
この記事でできること
- 現在日時を取得できる
- 日付と時刻を記録できる
- 実務で使えるコードが分かる
基本:Now関数の使い方
基本構文はこちらです。
Now
例:
MsgBox Now
→ 現在の日付と時刻が表示されます。
Now関数の特徴
- 現在の日時を取得
- 日付+時刻を返す
- Date型として扱える
基本例
Option Explicit
Sub NowBasic()
MsgBox Now
End Sub
セルに現在日時を書き込む
Range("A1").Value = Now
実行時の日時が記録されます。
日時の表示形式を変更する
Format関数と組み合わせると便利です。
MsgBox Format(Now, "yyyy/mm/dd hh:nn:ss")
表示例:
2024/01/01 10:30:45
ファイル名に日時を付ける
実務で非常によく使うパターンです。
Dim fileName As String
fileName = "売上_" & Format(Now, "yyyymmdd_hhnnss") & ".xlsx"
MsgBox fileName
→ 売上_20240101_103045.xlsx
Date・Timeとの違い
| 関数 | 内容 |
|---|---|
| Now | 日付+時刻 |
| Date | 日付のみ |
| Time | 時刻のみ |
経過時間を計測する
開始時間を保存して差分を取る方法です。
Dim startTime As Date
startTime = Now
MsgBox "開始:" & startTime
処理ログを残す
Range("A1").Value = "処理実行:" & Now
ログ記録でよく使います。
実務での活用例
- 処理実行ログ
- ファイル名生成
- バックアップ作成
- 更新日時記録
実務では非常に使用頻度が高い関数です。
注意点
① 時刻はリアルタイムで変わる
Nowを呼ぶたびに現在時刻を取得します。
② 秒まで含まれる
比較処理では注意が必要です。
③ ファイル名に「:」は使えない
Formatで整形してください。
Format(Now, "yyyymmdd_hhnnss")
よくあるエラーと対処法
① 表示形式がおかしい
セルの表示形式を確認してください。
② ファイル保存でエラー
日時フォーマットに「:」が含まれている可能性があります。
③ コードは正しいのにエラーになる
コピー時に全角文字や特殊文字が混ざることがあります。
その場合は該当行を手入力し直すと解決することがあります。
まとめ
- Nowは現在日時を取得する関数
- Date型として扱える
- Formatと組み合わせると便利
- 実務ではログやファイル名で大活躍
Now関数を使いこなせるようになると、日時を活用した実務的なVBAが作れるようになります。
非常に使用頻度が高い関数なので、ぜひマスターしておきましょう。

コメント