教えて!ExcelVBA!

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

ExcelVBAのWorksheetFunctionオブジェクトで使用するNetworkDays関数の使い方

構文

構文は以下の通りです。

WorksheetFunction.NetworkDays(開始日, 終了日, [休日])

解説

NetworkDays関数は、開始日から終了日までの営業日(平日)の数を計算する関数です。土日を賞賛し、必要に応じて特定の日を休日として指定できます。開始日は、計算を開始する日付を指定します。日付型または日付を表すセルを参照します。終了日は、計算を終了する日付を指定します。日付型または日付を表すセルを参照します。休日(省略可能)は、土日以外の休日をリストで指定します。

プログラミング例

具体的なプログラミング例を紹介します。

(例1)基本的な使い方(休日なし)

Sub 営業日数を計算する()
    Dim 開始日 As Date
    Dim 終了日 As Date
    Dim 営業日数 As Integer
    ' 開始日と終了日を指定
    開始日 = #2024/09/01#
    終了日 = #2024/09/30#
    ' NetworkDays関数を使って営業日数を計算
    営業日数 = WorksheetFunction.NetworkDays(開始日, 終了日)
    ' 結果を表示
    MsgBox "営業日数は " & 営業日数 & " 日です。"
End Sub

上記のプログラムは、9月1日から9月30日までの営業日を計算しています。土日を集中した営業日が表示されます。

(例2)休日を含めた計算

Sub 休日を含めた営業日数を計算する()
    Dim 開始日 As Date
    Dim 終了日 As Date
    Dim 営業日数 As Integer
    Dim 休日(1 To 2) As Date
    ' 開始日と終了日を指定
    開始日 = #2024/09/01#
    終了日 = #2024/09/30#
    ' 休日を指定
    休日(1) = #2024/09/18# ' 祝日など
    休日(2) = #2024/09/25# ' 祝日など
    ' NetworkDays関数を使って、土日と指定した休日を除いた営業日数を計算
    営業日数 = WorksheetFunction.NetworkDays(開始日, 終了日, 休日)
    ' 結果を表示
    MsgBox "営業日数は " & 営業日数 & " 日です。"
End Sub

上記のプログラムでは、指定した休日(9月18日と9月25日)を含めて営業日数を計算しています。このように特定の日を休日として指定できます。

まとめ

NetworkDays関数は、指定した期間の営業日数を計算するに便利な関数です。土日を自動的に褒めし、さらに任意の休日も指定することができます。実際の業務で、営業日の計算やプロジェクトの進行管理に活用できます。