教えて!ExcelVBA!

ExcelVBAの基礎知識・書き方について紹介します。

【ExcelVBA 関数】DateDiff関数の使い方を教えて!

構文

構文は以下の通りです。

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

解説

DateDiff関数は、2つの指定した日付の時間間隔を表す値を返します。
●interval:計算する期間の単位を指定します。以下によく使用される単位を示します。

"yyyy" 年単位
"q" 四半期単位
"m" 月単位
"y" 日単位(年を無視した日数)
"w" 週単位
"d" 日単位
"h" 時間単位
"n" 分単位
"s" 秒単位

●date1:期間の開始日を指定します。
●date2:期間の終了日を指定します。
●firstdayofweek(オプション):週の最初の日を指定します。省略した場合は、システムの設定に従います。
●firstweekofyear(オプション):年の最初の週を指定します。省略した場合は、システムの設定に従います。

使い方

1.DateDiff関数を使用するためには、VBAコードの中で関数を呼び出す必要があります。以下のように書きます。

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

2.次に、intervalパラメータを適切な値に設定します。例えば、日単位で期間を計算したい場合は "d" を指定します。

3.date1とdate2には、計算したい期間の開始日と終了日を指定します。日付はVBAのDate型や文字列形式で指定できます。

4.オプションのパラメータ firstdayofweek と firstweekofyear は必要に応じて指定します。

プログラミング例

以下に、DateDiff関数の具体的なプログラミング例を示します。

Sub CalculateDuration()
    Dim startDate As Date
    Dim endDate As Date
    Dim duration As Long
    startDate = #1/1/2023#   ' 開始日を指定します。
    endDate = #12/31/2023# ' 終了日を指定します。
    ' 日単位で期間を計算します。
    duration = DateDiff("d", startDate, endDate)
    ' 結果を表示します。
    MsgBox "期間の日数は " & duration & " 日です。"
End Sub

上記のプログラムでは、startDateに2023年1月1日、endDateに2023年12月31日を指定しています。そして、DateDiff関数を使用して日単位の期間を計算し、duration変数に結果を格納します。最後に、MsgBox関数を使用して結果を表示します。

まとめ

DateDiff関数は、日付の間の期間を計算するために便利な機能です。この関数を使用することで、日数や時間、分、秒などの単位で期間を計算することができます。