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:A7とB2: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
このマクロを実行すると、次の出力が表示されます。
列 C から F には、開始時刻と終了時刻の時間差が異なる単位で表示されます。
追加リソース
次のチュートリアルでは、VBA で他の一般的なタスクを実行する方法について説明します。