時間を比較するときに使うVBAの関数について

スポンサーリンク

時間の比較の手順を考えてみました

以前にこちらで乗り換え検索を自動で行うツールをご紹介しましたが、追加で所要時間を比較する必要があり、コードを考えました。
文字列で書かれている時間を比較するには関数を用いて変換をしたり、少しコツが必要になりますので、ここで紹介します。

時間の比較で使用するVBA関数

時間の比較で使用する関数は主に下記の2つです。

①TimeValue関数

文字列で表示されている時間を数値に変換する関数です。
24時間を1とした場合の値に変換されます。

記入方法は下記の通りです。

  • 1.Cells(1, 1) = TimeValue(“9:00”)
  • 2.Cells(1, 1) = TimeValue(“9時00分”)
  • ②TimeSerial関数

    こちらも時間を数字で表示するための関数です。
    数字で表したい時間の時間(hour)、分(minute)、秒(second)を引数に入力して用います。

  • Cells(1, 1) = TimeSerial(9, 0, 0)
  • スポンサーリンク

    その他使用すると便利な関数

    所要時間を表示する際は「〇〇時××分△△秒」ではなく、「〇〇時××分△△秒」と表示されていることが多いと思います。
    この中に入っている「間」が厄介で、このままではTimeValue関数が使用できません。

    この「間」を取り除くのにはVBA関数のReplace関数を用います。
    (ワークシート関数のReplaceとは挙動が異なります。)

    例えばA1セルに「6時間00分」と入力されているとすると、
    Cells(1,2) = Replace(A1,”間”,””)と入力するとB1セルに時間に変換した値(=0.25、=6:00:00など)が入力されます。

    ワークシートの書式を設定していなければ自動で時間型に変換されるのでそのまま使用できますし、ワークシートの書式を文字列にしておいてからTimeValue関数で数値型に変換しても良いと思います。

    コメント