【エクセルVBA】2つの日付の差を取得

当ページのリンクには広告が含まれています。

スポンサーリンク

VBAを用いて 2つの日付の差を取得する方法を解説します

クリックしてジャンプ

二つの日付の差を計算

DateDiff関数は、2つの日付の間の差(日数、月数、年数など)を計算します

プロジェクトの期間計算や経過日数の計測に便利です

Dim startDate As Date
Dim endDate As Date
Dim dayCount As Long

startDate = #1/1/2024#
endDate = #1/31/2024#
dayCount = DateDiff("d", startDate, endDate)

MsgBox "期間内の日数: " & dayCount

DateDiff関数の構文

DateDiff関数の基本的な構文は以下の通りです

DateDiff(interval, date1, date2, [firstdayofweek], [firstweekofyear])
  • interval: 差を計算する時間の単位を指定します。例えば、「日」「月」「年」「時間」などです。
  • date1: 基準となる日付を指定します。
  • date2: 差を計算する対象の日付を指定します。
  • firstdayofweek(省略可能): 週の最初の日を指定します。省略すると、日曜日がデフォルトになります。
  • firstweekofyear(省略可能): 年の最初の週を指定します。

intervalの指定方法

intervalは以下のように文字列で指定します

interval説明
“yyyy”
“q”四半期
“m”
“y”日(年の通日)
“d”
“w”平日
“ww”
“h”
“n”
“s”

2つの日付の間の経過日数を計算

Sub CalculateDaysDifference()
    Dim startDate As Date
    Dim endDate As Date
    Dim daysDiff As Long
    
    startDate = #1/1/2024# ' 開始日
    endDate = #1/10/2024# ' 終了日
    
    daysDiff = DateDiff("d", startDate, endDate) ' 経過日数を計算
    Range("A1").Value = daysDiff
End Sub

解説: 2024年1月1日から2024年1月10日までの経過日数を計算します

出力結果: 9

2つの日付の間の経過月数を計算

Sub CalculateMonthsDifference()
    Dim startDate As Date
    Dim endDate As Date
    Dim monthsDiff As Long
    
    startDate = #1/1/2024# ' 開始日
    endDate = #6/1/2024# ' 終了日
    
    monthsDiff = DateDiff("m", startDate, endDate) ' 経過月数を計算
    Range("A1").Value = monthsDiff
End Sub

解説: 2024年1月1日から2024年6月1日までの経過月数を計算します

出力結果: 5

2つの日付の間の経過年数を計算

Sub CalculateYearsDifference()
    Dim startDate As Date
    Dim endDate As Date
    Dim yearsDiff As Long
    
    startDate = #1/1/2020# ' 開始日
    endDate = #1/1/2024# ' 終了日
    
    yearsDiff = DateDiff("yyyy", startDate, endDate) ' 経過年数を計算
    Range("A1").Value = yearsDiff ' セルA1に出力
End Sub

解説: 2020年1月1日から2024年1月1日までの経過年数を計算します

出力結果: 4

2つの日付の間の経過「時間」を計算

Sub CalculateHoursDifference()
    Dim startTime As Date
    Dim endTime As Date
    Dim hoursDiff As Long
    
    startTime = #1/1/2024 8:00:00 AM# ' 開始時刻
    endTime = #1/1/2024 5:00:00 PM# ' 終了時刻
    
    hoursDiff = DateDiff("h", startTime, endTime) ' 経過時間を計算
    Range("A1").Value = hoursDiff
End Sub

解説: 2024年1月1日の午前8時から午後5時までの経過時間を計算します

出力結果: 9

2つの日付の間の経過「分」を計算

Sub CalculateMinutesDifference()
    Dim startTime As Date
    Dim endTime As Date
    Dim minutesDiff As Long
    
    startTime = #1/1/2024 8:00:00 AM# ' 開始時刻
    endTime = #1/1/2024 8:30:00 AM# ' 終了時刻
    
    minutesDiff = DateDiff("n", startTime, endTime) ' 経過分数を計算
    Range("A1").Value = minutesDiff
End Sub

解説: 2024年1月1日の午前8時から午前8時30分までの経過分数を計算します

出力結果: 30

スポンサーリンク

クリックしてジャンプ