【エクセル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