Excel

【Excel】VBAマクロで時間の比較(大小、24時間以上、差分計算合計等)する方法【DateDiff関数】【Format関数】

当サイトでは記事内に広告を含みます

この記事では、ExcelのVBAマクロを使用して時間の比較を行う方法について解説していきます。

ポイントとしては、DateDiff関数とFormat関数を使用することです。

また、下記の解説では完全な初心者でもわかりやすいようにあえて変数名を少々変わった名称にしております。

そのため、あなた自身がご活用の際には、ここを適切なものに変更してご活用くださいね。

それでは詳しく見ていきましょう!

VBAマクロで時間の比較(大小をc列に表示)方法

それではまず、時間の比較(大小をc列に表示)方法について解説していきます。この処理にはExcelのVBAの基本的な関数を使用し、シンプルながらも効率的な比較が可能です。


Sub JikanHikaku()
    Dim jikan1 As Range, jikan2 As Range, kekka As Range
    Set jikan1 = Range("A1")
    Set jikan2 = Range("B1")
    Set kekka = Range("C1")

    ' 時間の比較を行い、結果をC列に表示
    If jikan1.Value < jikan2.Value Then
        kekka.Value = "jikan1 < jikan2" ElseIf jikan1.Value > jikan2.Value Then
        kekka.Value = "jikan1 > jikan2"
    Else
        kekka.Value = "jikan1 = jikan2"
    End If
End Sub

Alt + F11にてVBE画面を開いて、上記コードをコピペしましょう。コードのAlt+F8を押し、マクロ選択画面でJikanHikaku関数を実行します。このコードは、セルA1とB1に入力された時間を比較し、C1に結果を出力します。

VBAマクロで時間の比較(24時間以上にも以内にも対応、2列の差分、引き算をc列に表示)方法

続いては、24時間を超える時間の比較にも対応し、2列の差分をC列に表示する方法について解説していきます。この処理では、時間の計算を行うために、VBAのDateDiff関数を活用します。


Sub JikanSaHikaku()
    Dim jikan1 As Range, jikan2 As Range, kekka As Range
    Set jikan1 = Range("A1")
    Set jikan2 = Range("B1")
    Set kekka = Range("C1")

    ' 時間の差分を計算し、C列に表示
    kekka.Value = DateDiff("n", jikan1.Value, jikan2.Value) & " 分"
End Sub

Alt + F11にてVBE画面を開いて、上記コードをコピペしましょう。コードのAlt+F8を押し、マクロ選択画面でJikanSaHikaku関数を実行します。このコードは、セルA1とB1の時間差を分単位で計算し、C1に結果を表示します。

VBAマクロで時間の比較を3列で行い不等号をつける方法【関数名】

最後に、3列の時間の比較を行い、不等号をつける方法について説明します。この比較では、VBAのFormat関数を用いて、時間データを適切に処理します。


Sub JikanHikakuSanretsu()
    Dim jikan1 As Range, jikan2 As Range, jikan3 As Range, kekka As Range
    Set jikan1 = Range("A1")
    Set jikan2 = Range("B1")
    Set jikan3 = Range("C1")
    Set kekka = Range("D1")

    ' 3列の時間を比較し、不等号を用いて結果をD列に表示
    kekka.Value = Format(jikan1.Value, "hh:mm:ss") & " " & _
                  IIf(jikan1.Value < jikan2.Value, "<", ">") & " " & _
                  Format(jikan2.Value, "hh:mm:ss") & " " & _
                  IIf(jikan2.Value < jikan3.Value, "<", ">") & " " & _
                  Format(jikan3.Value, "hh:mm:ss")
End Sub

Alt + F11にてVBE画面を開いて、上記コードをコピペしましょう。コードのAlt+F8を押し、マクロ選択画面でJikanHikakuSanretsu関数を実行します。このコードでは、A、B、Cの各セルの時間を比較し、D列に結果を表示します。

以上で、ExcelのVBAマクロを利用した時間の比較方法についての解説を終えます。各関数を上手く活用して、時間データの比較や計算を効率的に行いましょう。