構文
構文は以下の通りです。
WorksheetFunction.WorkDay(開始日, 日数, [祝日])
解説
WorksheetFunctionは、ExcelVBAの組み込みオブジェクトで、Excelのワークシート関数をVBAから呼び出す際に使用します。WorkDay関数は、土日を除外した営業日計算を簡単に算出できます。開始日には、計算を開始する日付を指定します。開始日は日付形式で指定します。日数には、開始日から何営業日進めるかを指定します。祝日(省略可能)には、土日以外に計算から除外したい日(例えば祝日)を指定することができます。祝日をリストとして渡します。
プログラミング例
具体的なプログラミング例を紹介します。
(例1)開始日から5営業日後の日付を求める
Sub 営業日計算()
Dim 開始日 As Date
Dim 日数 As Integer
Dim 結果 As Date
' 2024年10月1日から5営業日後の日付を求める
開始日 = #10/1/2024#
日数 = 5
結果 = WorksheetFunction.WorkDay(開始日, 日数)
' 結果をメッセージボックスで表示
MsgBox "5営業日後の日付は " & 結果
End Sub
Dim 開始日 As Date
Dim 日数 As Integer
Dim 結果 As Date
' 2024年10月1日から5営業日後の日付を求める
開始日 = #10/1/2024#
日数 = 5
結果 = WorksheetFunction.WorkDay(開始日, 日数)
' 結果をメッセージボックスで表示
MsgBox "5営業日後の日付は " & 結果
End Sub
上記のプログラムでは、2024年10月1日から5営業日後の日付を計算しています。WorkDay関数は土日を自動的に除外し、結果を求めます。結果はMsgBoxに表示されます。
(例2)祝日を除外して営業日を計算
Sub 営業日と祝日計算()
Dim 開始日 As Date
Dim 日数 As Integer
Dim 結果 As Date
Dim 祝日() As Date
' 2024年10月1日から5営業日後の日付を、祝日も考慮して求める
開始日 = #10/1/2024#
日数 = 5
' 祝日リストを作成(2024年10月9日を祝日とする)
祝日 = Array(#10/9/2024#)
結果 = WorksheetFunction.WorkDay(開始日, 日数, 祝日)
' 結果をメッセージボックスで表示
MsgBox "祝日を考慮した5営業日後の日付は " & 結果
End Sub
Dim 開始日 As Date
Dim 日数 As Integer
Dim 結果 As Date
Dim 祝日() As Date
' 2024年10月1日から5営業日後の日付を、祝日も考慮して求める
開始日 = #10/1/2024#
日数 = 5
' 祝日リストを作成(2024年10月9日を祝日とする)
祝日 = Array(#10/9/2024#)
結果 = WorksheetFunction.WorkDay(開始日, 日数, 祝日)
' 結果をメッセージボックスで表示
MsgBox "祝日を考慮した5営業日後の日付は " & 結果
End Sub
上記のプログラムでは、開始日から5営業日後の日付を計算する際に、祝日(2024年10月9日)を除外し、祝日も土日も同様にカウントされないようにできます。
まとめ
WorkDay関数は、土日を除外した営業日計算を簡単に算出できる便利な関数です。祝日を引数として渡すことで、特定の日を除外することも可能です。開始日と日数を指定するだけで、営業日後の日付を正確に計算できます。