エクセルバージョン
マイクロソフト365
今回は二つの期間の間隔が数字で取得できるDateDiff関数についてです。
それではいってみましょう!
Menu
DateDiff関数
概要
・二つの指定した日付の間隔(年数、月数、日数や時間など)をVariant(Long)で返します。
・何日前や何時間前など、過去の場合はマイナスになります。
構文
DateDiff(interval,date1,date2,[firstdayofweek,[firstweekofyear]])
[ ]は省略可
引数
DateDiff関数 | 必須/省略可 | 内容 |
interval 第1引数 | 必須 | date1 と date2 の時間間隔の計算に使用する時間単位を表す文字列を指定。 |
date1 第2引数 | 必須 | 開始の日付を指定。 |
date2 第3引数 | 必須 | 終わりの日付を指定。 |
firstdayofweek 第4引数 | 省略可 | 週の始まりの曜日を表す定数を指定。 省略は日曜日から。 指定方法の詳細 |
firstweekofyear 第5引数 | 省略可 | 年の第1週を指定する定数を指定。 省略は1月1日を含む週が第1週。 指定方法の詳細 |
第1引数interval指定の詳細
設定 | 内容 |
yyyy | 年 |
q | 四半期 |
m | 月 |
y | 通年での日数 |
d | 日 |
w | 平日 |
ww | 週 |
h | 時 |
n | 分 |
s | 秒 |
第4引数firstweekofyear指定の詳細
定数 | 値 | 内容 |
vbUseSystem | 0 | NLS API 設定を使用します。 |
vbSunday | 1 | 日曜日 (既定) |
vbMonday | 2 | 月曜日 |
vbTuesday | 3 | 火曜日 |
vbWednesday | 4 | 水曜日 |
vbThursday | 5 | 木曜日 |
vbFriday | 6 | 金曜日 |
vbSaturday | 7 | 土曜日 |
第5引数firstweekofyearの詳細
定数 | 値 | 内容 |
vbUseSystem | 0 | NLS API 設定を使用します。 |
vbFirstJan1 | 1 | 1 月 1 日が含まれる週から開始します (既定)。 |
vbFirstFourDays | 2 | 新年で少なくとも 4 日ある最初の週から開始します。 |
vbFirstFullWeek | 3 | 年の最初の完全な週から開始します。 |
VBAサンプル
現在から何年後
1 2 3 | '現在から何年後(本日が2021/7/22だとしたら) Debug.Print DateDiff("yyyy", Now, "2030/1/21") '【結果】9 |
現在から何ヶ月後
1 2 3 | '現在から何ヶ月後(本日が2021/7/22だとしたら) Debug.Print DateDiff("m", Now, "2022/8/1") '【結果】13 |
現在から何週間後
1 2 3 | '現在から何週間後(本日が2021/7/22だとしたら) Debug.Print DateDiff("ww", Now, "2021/8/27") '【結果】5 |
現在から何日後
1 2 3 | '現在から日数(本日が2021/7/22だとしたら) Debug.Print DateDiff("d", Now, "2021/12/31") '【結果】162 |
何時間後
1 2 3 | '何時間後 Debug.Print DateDiff("h", "2021/7/22", "2021/7/23") '【結果】24 |
何分後
1 2 3 | '何分後 Debug.Print DateDiff("n", "2021/7/22", "2021/7/23") '【結果】1440 |
何秒後
1 2 3 | '何秒後 Debug.Print DateDiff("s", "2021/7/22", "2021/7/23") '【結果】86400 |
何日前
1 2 3 | '何日前 Debug.Print DateDiff("d", "2021/7/31", "2021/7/1") '【結果】-30 |
まとめ
二つの期間の差を求める時は便利に機能してくれそうです。
以上です。
日付の変換
【関数】(DATEVALUE)文字形式の日付をシリアル値の日付に変換
【関数】(YEAR,MONTH,DAY)日付から年,月,日を取得
時間
【VBA】(TimeValue)文字列の時間や数式から時刻を取得
【VBA】(TimeSerial)時,分,秒を指定して時刻を取得
【VBA】(Hour,Minute,Second)時,分,秒を分けて取得
現在の日時,日付
曜日や週
【VBA】(WeekdayName)数値や定数を指定で曜日取得
土日や祝日
【関数】(WORKDAY)土日,祝日,指定日を除いた日付を取得
【関数】(NETWORKDAYS)土日,祝日,指定日を除いた日数を取得