はじめに
Excelで作業をしていると、
「処理した時刻を記録したい」
「ログに現在時刻を残したい」
そんな場面がよくあります。
VBAでは、現在時刻を簡単に取得でき、
作業履歴や処理ログを静かに支えてくれます。
ここでは、現在時刻を取得する基本のコードと、
実務で役立つポイントを解説します。
まずはコードを確認
Dim t As Date
t = Time
もっともシンプルな書き方です。
Time は「現在時刻」を返します。
現在時刻を取得する方法
現在時刻だけを取得する(Time)
t = Time
- 時刻のみ
- 日付は含まない
- 実務でよく使う
現在の日時を取得する(Now)
t = Now
- 日付+時刻
- ログや処理履歴に便利
現在時刻をセルに入力する
Range("A1").Value = Time
A1セルに現在時刻が入ります。
時刻の書式を整えて入力する
Range("A1").Value = Time
Range("A1").NumberFormat = "hh:mm:ss"
見やすい形式に整えたいときに使います。
具体的な例で理解する
ログに現在時刻を記録する
Dim lastRow As Long
lastRow = Cells(Rows.Count, 1).End(xlUp).Row + 1
Cells(lastRow, 1).Value = Time
Cells(lastRow, 2).Value = "処理開始"
処理の開始時刻を記録する実務でよく使うパターンです。
日付と時刻をまとめて記録する
Range("A1").Value = Format(Now, "yyyy/mm/dd hh:mm:ss")
ログや履歴に使いやすい形式です。
条件に応じて時刻を入れる
If Range("B2").Value = "" Then
Range("B2").Value = Time
End If
空欄のときだけ時刻を入れるなど、柔軟な使い方ができます。
Time と Now の違い(実務で特に大切)
| 関数 | 返す値 | よく使う場面 |
|---|---|---|
| Time | 現在時刻 | 処理開始時刻、終了時刻、ログ |
| Now | 日付+時刻 | 履歴管理、タイムスタンプ |
実務では Time は軽く、Now は情報量が多い と覚えておくと安心です。
注意点(実務で気をつけたいこと)
- 時刻は「値」と「表示形式」が別物
→ NumberFormat を設定しないと、意図しない表示になることがあります。
- システム時刻に依存する
→ PCの時刻設定がずれていると、取得結果もずれます。
- 文字列として扱う場合は Format を使う
→ “14:03:22” のように整えたいときに便利です。
応用:現在時刻を文字列として取得する
Dim s As String
s = Format(Time, "hh:mm:ss")
ログやファイル名に使いやすい形式です。
まとめ
- Time で現在時刻、Now で現在の日時を取得できる
- セルに入力するだけなら Range(“A1”).Value = Time でOK
- 表示形式は NumberFormat で整える
- ログや履歴には Now が便利
- 時刻は「値」と「見た目」が別物であることに注意
現在時刻を扱えるようになると、
処理ログや履歴管理がぐっとスムーズになります。

現在時刻を自動で扱えると、
「記録する」という作業が静かに、でも確実に楽になります。
VBAは、そんな日々の積み重ねをそっと支えてくれます。

いまの時刻って、なんだか“今を切り取る”感じがするね。
VBAなら、その瞬間を正確に残せるよ。

コメント