VBAで時間を扱っていると、次のようなことはありませんか?
- 現在時刻を取得したい
- 処理時間を記録したい
- 時刻によって処理を分けたい
このような場合は、Time関数を使うことで解決できます。
現在の「時刻のみ」を取得できる、VBAでよく使われる関数です。
この記事では、Time関数の基本から実務での活用方法まで分かりやすく解説します。
この記事でできること
- 現在時刻を取得できる
- 時間による条件分岐ができる
- 実務で使える時間処理が分かる
Time関数とは?
Time関数は、現在の「時刻」を取得する関数です。
取得される内容:
10:30:45
※日付は含まれません。
基本:Time関数の使い方
基本構文はこちらです。
Time
基本例
MsgBox Time
→ 現在時刻が表示されます。
セルへ現在時刻を書き込む
Range("A1").Value = Time
実行時の時刻を記録できます。
時刻を整形して表示する
Format関数と組み合わせると便利です。
MsgBox Format(Time, "hh:nn:ss")
表示例:
14:25:30
Hour・Minute・Secondと組み合わせる
時・分・秒を取得できます。
Dim h As Integer
Dim m As Integer
Dim s As Integer
h = Hour(Time)
m = Minute(Time)
s = Second(Time)
MsgBox h & ":" & m & ":" & s
時間による条件分岐
業務時間チェックなどで使えます。
If Hour(Time) >= 9 And Hour(Time) < 18 Then
MsgBox "営業時間内です"
Else
MsgBox "営業時間外です"
End If
Now・Dateとの違い
| 関数 | 内容 |
|---|---|
| Now | 日付+時刻 |
| Date | 日付のみ |
| Time | 時刻のみ |
ログ記録で使う
Range("A1").Value = "処理開始:" & Time
処理時間を確認する
Dim startTime As Date
startTime = Time
MsgBox "開始時刻:" & startTime
実務での活用例
- ログ記録
- 処理時間管理
- 営業時間判定
- リアルタイム処理
時間管理系でよく使われます。
注意点
① 日付は含まれない
日付も必要な場合は Now を使います。
② 呼び出すたびに変わる
リアルタイム時刻を取得します。
③ 秒まで取得される
比較時は注意が必要です。
安全な書き方(おすすめ)
Dim currentTime As Date
currentTime = Time
MsgBox Format(currentTime, "hh:nn:ss")
よくあるエラーと対処法
① 表示形式がおかしい
セルの表示形式を確認してください。
② 時間比較がうまくいかない
秒まで含まれていないか確認してください。
③ Nowとの違いが分からない
Timeは時刻のみです。
④ コードは正しいのにエラーになる
コピー時に全角文字や特殊文字が混ざることがあります。
その場合は該当行を手入力し直すと解決することがあります。
まとめ
- Timeは現在時刻を取得する関数
- 日付は含まれない
- 時間管理やログ処理で活躍
- Now・Dateとの使い分けが重要
Time関数を使いこなせるようになると、時間を活用した実務的なVBAが作れるようになります。
業務自動化では非常に便利なので、ぜひマスターしておきましょう。

コメント