[VBA][Excel]DateDiff関数 日付や時刻の間隔を知る


※全てのExcelで動作する保証はありません。また、内容に関し管理人は全ての責任を負いかねます

サンプル ※説明に必要な部分しか記述していません


DateDiff(interval, date1, date2[, firstdayofweek[, firstweekofyear]])

DateDiff関数はintervalに指定する文字列によって間隔が異なり、”d”なら日数、”h”なら時間となります。

結果はdate1とdate2との間隔(日数、時間など)を返します。

通常は date1が本日、date2が明日といった、「date1よりdate2の方が後の日付時刻」を指定する場合が多いと思われますが、「date2よりdate1の方が後の日付時刻」を指定するとマイナスの数値になりますので注意が必要です。

 

引数 firstdayofweek, firstweekofyearについては省略可能です。詳しくはヘルプをご覧下さい。


intervalの設定値

設定値 内容 
yyyy  年 
q  四半期 
m  月 
y  年間通算日 
d  日 
w  週日 
ww  週 
h  時 
n  分 
s  秒 

下記の例文を実行すると

Private Sub CommandButton1_Click()

Sheet1.Range("A1").Value = DateDiff("d", "2016/4/9", "2016/4/14") & "日"

Sheet1.Range("A2").Value = DateDiff("m", "2016/4/9", "2016/7/14") & "月"
Sheet1.Range("A3").Value = DateDiff("m", "2016/4/9", "2017/4/14") & "月"

Sheet1.Range("A4").Value = DateDiff("yyyy", "2016/4/9", "2017/4/14") & "年"
Sheet1.Range("A5").Value = DateDiff("yyyy", "2019/4/9", "2016/4/9") & "年"

Sheet1.Range("A6").Value = DateDiff("h", "2016/4/9 9:00", "2016/4/9 18:00") & "時間"
Sheet1.Range("A7").Value = DateDiff("h", "2016/4/9 9:00", "2016/4/7 9:00") & "時間"

Sheet1.Range("A8").Value = DateDiff("n", "2016/4/9 9:00", "2016/4/9 12:00") & "分間"

End Sub

例文の結果はこのようになります。

vba-excel-datediff