【VBA入門】指定日が休日かどうかを判定する方法|NetworkDays.Intl関数で柔軟に判別

業務カレンダーに基づいて、「この日が営業日か休日か」を判定したい場面は多くあります。
Excel VBAでは、WorksheetFunction.NetworkDays_Intl 関数を利用することで、任意の曜日や祝日を休日とみなしつつ、1日単位で稼働日判定が可能です。

本記事では、指定された日付に対して、その日が営業日か休日かを1行ずつチェックする方法をご紹介いたします。


目次

コード例:1日ごとの営業日・休日を判定する

Sub CheckHolidayFlag()
    Dim targetCell As Range
    Dim customWeekend As String
    Dim holidayList As Variant

    customWeekend = "0000110"  ' 金曜と土曜を休日扱い
    holidayList = Array(#2025/01/01#, #2025/02/11#, #2025/04/29#)  ' 任意の祝日

    For Each targetCell In Range("B2:B6")
        If WorksheetFunction.NetworkDays_Intl( _
            targetCell.Value, targetCell.Value, customWeekend, holidayList) > 0 Then
            targetCell.Offset(0, 1).Value = "稼働日"
        Else
            targetCell.Offset(0, 1).Value = "休日"
        End If
    Next
End Sub

処理の概要

  • 対象範囲:B2~B6セルに日付が入力されていると想定
  • 判定結果:隣のC列に「稼働日」または「休日」と表示される
  • customWeekend の「0000110」は、金曜と土曜を休日に設定
  • holidayList には任意の祝日を配列で指定可能

NetworkDays.Intlの判定ロジック

WorksheetFunction.NetworkDays_Intl(開始日, 終了日, 休日指定, 祝日配列)
この関数は、指定された期間に何日稼働日があるかを返します。開始日=終了日とすれば、その日が稼働日であれば 1 が返り、休日であれば 0 が返されます。

この性質を利用し、日付ごとに営業日かどうかをチェックすることが可能です。


判定結果の例(C列)

B列(日付)C列(判定結果)
2025/01/01休日
2025/01/03稼働日
2025/01/10休日
2025/01/11休日
2025/01/13稼働日

まとめ|1日単位の営業日チェックにも対応可能

日々のスケジュールや納期管理、月次シフト表の作成など、休日判定は業務の自動化に欠かせない要素です。

  • NetworkDays_Intl 関数を使えば、任意の曜日+祝日を休日と見なせる
  • 開始日=終了日を同じにすることで、1日だけの稼働判定が可能
  • 結果は「稼働日」「休日」などのフラグとして隣接セルに記録できる

このように、VBAを使えば柔軟かつ正確な休日判定が可能です。
独自のカレンダーや業務ルールに沿った自動処理の一環として、ぜひ活用してみてください。

副業から独立まで「稼げる」Webスキルを習得する(PR)

ここまで読んでいただきありがとうございます。 最後に宣伝をさせてください。

「副業を始めたいが、何から手をつければいいかわからない」「独学でスキルはついたが、収益化できていない」という悩みを持つ方には、マンツーマン指導のWebスクール**「メイカラ」**が適しています。

このスクールは、単に技術を教えるだけでなく、**「副業として具体的にどう稼ぐか」**という実務直結のノウハウ提供に特化している点が特徴です。

講師陣は、実際に「副業Webライターから1年で独立して月収100万円」を達成したプロや、現役で利益を出し続けているブロガーなど、確かな実績を持つプレイヤーのみで構成されています。そのため、机上の空論ではない、現場で通用する戦術を学ぶことができます。

副業に特化した強み

  • 最短ルートの提示: 未経験からでも実績を出せるよう、マンツーマンで指導。
  • AI活用の習得: 副業の時間対効果を最大化するための、正しいAI活用スキルも網羅。
  • 案件獲得のチャンス: 運営がWebマーケティング会社であるため、実力次第で社内案件の紹介など、仕事に直結する可能性があります。

受講者の多くは、「在宅でできる仕事を探している」「副業を頑張りたい」という20代・30代・40代が中心です。

受講前には、講師による無料説明が行われます。無理な勧誘はなく、自分に合った副業スタイルやプランを相談できるため、まずは話を聞いてみることから始めてみてはいかがでしょうか。

ブログで稼ぎたいなら「メイカラ」

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

私が勉強したこと、実践したこと、してることを書いているブログです。
主に資産運用について書いていたのですが、
最近はプログラミングに興味があるので、今はそればっかりです。

目次