大体でIT

-ちょっと使えるネタを紹介-

大体でIT

Excel VBAで時、分、秒の数値を時間に変換する方法についてご紹介します。時、分、秒を時間に変換するには、TimeSerialを使います。TimeSerialで日付型の時間に変換できれば、時間の比較や計算ができますので、便利です。

はじめに

この記事では、時、分、秒を時間に変換する方法についてご紹介します。

時、分、秒を時間に変換するには、TimeSerialを使います。

TimeSerialで時間に変換すれば、時間の比較や計算ができます。

時間の比較や計算をしたい場合は、TimeSerialで日付型の時間に変換する方法が便利です。

では、解説していきます。

この記事で紹介すること

  • 時、分、秒を時間に変換する方法

目次から見たい項目へ移動すると便利ですよ。

目次

ポイントとなるVBAコード

初めに、ポイントとなるVBAコードを記載しておきます。

VBAコードだけ確認したい場合に、ご活用ください。

Dim A
'時、分、秒を時間に変換
A = TimeSerial(17, 1, 2) '17:01:02

では、解説していきます。

VBAで時、分、秒の数値を時間に変換

時、分、秒の数値を時間に変換する方法をご紹介します。

それぞれの数値から時間に変換するには、TimeSerialを使います。

TimeSerialを使えば、時日付型のデータに変換できますので、比較や計算ができます。

比較や計算をしたい場合は、TimeSerialを使って日付型のデータに変換しましょう。

TimeSerialの使い方

時、分、秒を時間に変換するTimeSerialには次のように入力します。

『時間 = TimeSerial(時, 分, 秒)』

では、具体的なVBAコードを例に挙げて説明していきます。

時、分、秒から時間に変換した結果

時、分、秒を時間に変換してみます。

時、分、秒がそれぞれ『17』、『1』、『2』の数値を時間に変換してみます。

Sub TEST1()
    
    Dim A
    '時、分、秒を時間に変換
    A = TimeSerial(17, 1, 2)
    
    MsgBox A
    
End Sub

実行してみます。

時、分、秒を時間に変換

TimeSerialを使って時、分、秒を時間に変換した結果

結果は、『17:01:02』となりました。

日付型に変換される

TimeSerialを使って時、分、秒を時間に変換した時の変数の型

変数の型も、日付型となっています。

セルの時、分、秒から時間に変換した結果

つづいて、セルに入力された時、分、秒をTimeSerialを使って時間に変換してみます。

セルに入力された時、分、秒がそれぞれ『17』、『1』、『2』の数値を時間に変換するVBAコードです。

Sub TEST2()
    
    Dim A
    'セルの時、分、秒を時間に変換
    A = TimeSerial(Cells(2, 1), Cells(2, 2), Cells(2, 3))
    
    MsgBox A
    
End Sub

実行してみます。

セルの時、分、秒を時間に変換

TimeSerialでセルに入力された時、分、秒を時間に変換した結果

結果は、『17:01:02』になりました。

時間に変換できています。

日付型に変換される

TimeSerialで時間に変換した時の変数の型

変数の型も、日付型となっています。

日付型に変換するとVBAで比較や計算ができる

時間を日付型に変換するとVBAで比較や計算ができるようになります。

ちょっとやってみます。

日付型の時間を比較する

日付型の時間を比較してみます。

時間『17:0:0』と『17:0:1』を比較してみます。

Sub TEST3()
    
    Dim A, B
    A = TimeSerial(17, 0, 0) '日付型の時間に変換
    B = TimeSerial(17, 0, 1) '日付型の時間に変換
    
    '時間を比較
    If A < B Then
        MsgBox B & " の方が大きいです"
    Else
        MsgBox A & " の方が大きいです"
    End If
    
End Sub

実行してみます。

日付型の時間を比較

日付型の時間を比較した結果

結果は、『17:0:1 の方が大きい』となりました。

正しく時間の比較ができています。

日付型の時間を計算する

日付型の時間を計算してみます。

時間『17:0:0』と『18:2:3』の差分を計算するVBAコードです。

Sub TEST4()
    
    Dim A, B, C, D
    A = TimeSerial(17, 0, 0) '日付型の時間に変換
    B = TimeSerial(18, 2, 3) '日付型の時間に変換
    
    '時間の差分を計算
    C = B - A
    
    '日付型の時間に変換
    D = CDate(C)
    
    MsgBox D
    
End Sub

実行してみます。

日付型の時間で差分を計算

日付型の時間で差分を計算した結果

結果は、『1:2:3』となりました。

正しく時間の差分を計算できています。

TimeSerialで日付型の時間に変換すると、時間の比較や計算ができます。

時間の比較や計算をしたい場合は、TimeSerialを使って日付型の時間に変換しましょう。

文字列での時間の比較や計算はできない

ちなみに文字列での時間の比較や計算はできません。

文字列で時間の比較と計算をしてみます。

文字列の時間を比較してみる

文字列の時間『"17:0:0"』と『"17:00:01"』の比較をしてみます。

Sub TEST5()
    
    Dim A, B
    A = "17:0:0"
    B = "17:00:01"
    
    '時間を比較
    If A < B Then '←文字列での比較はできない
        MsgBox B & " の方が大きいです"
    Else
        MsgBox A & " の方が大きいです"
    End If
    
End Sub

実行してみます。

文字列の時間を比較

文字列の時間を比較した結果

結果は、『17:0:0 の方が大きい』となりました。

実際は、『17:00:01』の方が大きいので、間違いです。

時間を比較するときは、TimeSerialで日付型に変換して比較しましょう。

文字列の時間で計算してみる

文字列の時間で2つの時間の差分を計算してみます。

時間『"17:0:0"』と『"17:0:1"』の差分を計算するVBAコードです。

Sub TEST6()
    
    Dim A, B, C
    A = "17:0:0"
    B = "17:0:1"
    
    '時間の差分を計算
    C = B - A '←文字列での計算はできない(エラー)
    
End Sub

実行してみます。

文字列の時間で差分を計算

文字列の時間で差分を計算した結果

結果は、エラーとなりました。

そもそも文字列の時間では、計算はできません。

時間の計算をしたい場合は、TimeSerialで日付型の時間に変換するとできます。

おわりに

この記事では、時、分、秒を時間に変換する方法についてご紹介しました。

時、分、秒を時間に変換するには、TimeSerialでできます。

TimeSerialで時間に変換すれば、時間の比較や計算ができます。

時間の比較や計算をしたい場合は、TimeSerialで日付型の時間に変換しましょう。

参考になればと思います。最後までご覧くださいましてありがとうございました。

関連する記事から探す

カテゴリから探す

カテゴリから見たい項目を探すと便利ですよ。

サイト内を検索する

↓キーワードを入力する

アーカイブから探す