VBAで時間を扱っていると、次のようなことはありませんか?
- 指定した時刻を作成したい
- 時・分・秒を組み合わせたい
- 時間計算を簡単にしたい
このような場合は、TimeSerial関数を使うことで解決できます。
「時・分・秒」から時刻データを作成できる便利な関数です。
この記事では、TimeSerial関数の基本から実務での活用方法まで分かりやすく解説します。
この記事でできること
- 時刻データを作成できる
- 時間計算ができる
- 実務で使える時間処理が分かる
TimeSerial関数とは?
TimeSerial関数は、「時・分・秒」から時刻を作成する関数です。
例えば:
10時30分15秒
を簡単に作成できます。
基本:TimeSerial関数の使い方
基本構文はこちらです。
TimeSerial(時, 分, 秒)
基本例
MsgBox TimeSerial(10, 30, 15)
→ 10:30:15
セルへ時刻を書き込む
Range("A1").Value = TimeSerial(9, 0, 0)
A1へ「09:00:00」を入力できます。
変数を使った例
Dim h As Integer
Dim m As Integer
Dim s As Integer
h = 14
m = 25
s = 30
MsgBox TimeSerial(h, m, s)
→ 14:25:30
時間計算で使う
開始時間・終了時間を比較できます。
Dim startTime As Date
startTime = TimeSerial(9, 0, 0)
If Time >= startTime Then
MsgBox "9時以降です"
End If
分や秒が60を超えてもOK
自動的に繰り上がります。
MsgBox TimeSerial(1, 90, 0)
→ 02:30:00
マイナス値も使用可能
MsgBox TimeSerial(10, -30, 0)
→ 09:30:00
Format関数と組み合わせる
MsgBox Format(TimeSerial(8, 5, 0), "hh:nn:ss")
→ 08:05:00
TimeValueとの違い
| 関数 | 内容 |
|---|---|
| TimeSerial | 時・分・秒から時刻作成 |
| TimeValue | 文字列から時刻変換 |
実務での活用例
- 勤務時間管理
- 営業時間判定
- ログ時間処理
- スケジュール管理
時間処理系では非常によく使われます。
注意点
① 戻り値はDate型
内部的には日時データとして扱われます。
② 表示形式に注意
セル表示形式によって見え方が変わります。
③ 24時間を超える場合
日付へ繰り上がる場合があります。
安全な書き方(おすすめ)
Dim h As Integer
Dim m As Integer
Dim s As Integer
h = 10
m = 30
s = 0
If h >= 0 And h <= 23 Then
MsgBox TimeSerial(h, m, s)
End If
よくあるエラーと対処法
① 表示がおかしい
セルの表示形式を確認してください。
② 時間がずれる
分・秒の繰り上がりを確認してください。
③ 型が一致しません
数値以外が入っている可能性があります。
④ コードは正しいのにエラーになる
コピー時に全角文字や特殊文字が混ざることがあります。
その場合は該当行を手入力し直すと解決することがあります。
まとめ
- TimeSerialは時刻を作成する関数
- 時・分・秒を指定できる
- 時間計算で非常に便利
- 実務では時間管理で活躍
TimeSerial関数を使いこなせるようになると、時間処理が非常に柔軟になります。
実務でも使用頻度が高いので、ぜひマスターしておきましょう。

コメント