Vbaで時差を計算する方法(例付き)


VBA で次の基本構文を使用して、2 つの時間の差を計算できます。

 Sub FindTimeDifference()
    
    Dim i As Integer

    For i = 2 To 7
        'calculate time difference in days
        Range(" C " & i) = Range(" B " & i) - Range(" A " & i)
        
        'calculate time difference in hours
        Range(" D " & i) = (Range(" B " & i) - Range(" A " & i)) * 24
        
        'calculate time difference in minutes
        Range(" E " & i) = (Range(" B " & i) - Range(" A " & i)) * 24 * 60
        
        'calculate time difference in seconds
        Range(" F " & i) = (Range(" B " & i) - Range(" A " & i)) * 24 * 60 * 60
    Next i
    
End Sub

この特定のマクロは、範囲A2:A7B2:B7の対応する時間の差を計算し、次の結果を返します。

  • C2:C7には時差が日単位で含まれます
  • D2:D7 には時間単位の時差が含まれます
  • E2:E7 には分単位の時差が含まれます
  • F2:F7には秒単位の時差が含まれます

次の例は、この構文を実際に使用する方法を示しています。

例: VBA で時差を計算する

Excel に開始時刻と終了時刻を示す次の 2 つの列があるとします。

次のマクロを作成して、各開始時間と終了時間の間の時間差を計算し、その結果を列 C ~ F に表示できます。

 Sub FindTimeDifference()
    
    Dim i As Integer

    For i = 2 To 7
        'calculate time difference in days
        Range(" C " & i) = Range(" B " & i) - Range(" A " & i)
        
        'calculate time difference in hours
        Range(" D " & i) = (Range(" B " & i) - Range(" A " & i)) * 24
        
        'calculate time difference in minutes
        Range(" E " & i) = (Range(" B " & i) - Range(" A " & i)) * 24 * 60
        
        'calculate time difference in seconds
        Range(" F " & i) = (Range(" B " & i) - Range(" A " & i)) * 24 * 60 * 60
    Next i
    
End Sub

このマクロを実行すると、次の出力が表示されます。

VBAは時差を計算します

列 C から F には、開始時刻と終了時刻の時間差が異なる単位で表示されます。

追加リソース

次のチュートリアルでは、VBA で他の一般的なタスクを実行する方法について説明します。

VBA で日付を比較する方法
VBA で 2 つの日付の間の日数を計算する方法
VBAで文字列を日付に変換する方法

コメントを追加する

メールアドレスが公開されることはありません。 が付いている欄は必須項目です