【ExcelVBA・マクロ】TimeSerial関数の使い方|時・分・秒から時刻を作成する方法【コピペOK】

TimeSerial関数の使い方 ExcelVBA

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関数を使いこなせるようになると、時間処理が非常に柔軟になります。
実務でも使用頻度が高いので、ぜひマスターしておきましょう。

スポンサーリンク
スポンサーリンク
ExcelVBA
いがぴをフォローする

コメント

タイトルとURLをコピーしました