業務カレンダーに基づいて、「この日が営業日か休日か」を判定したい場面は多くあります。
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代が中心です。
受講前には、講師による無料説明が行われます。無理な勧誘はなく、自分に合った副業スタイルやプランを相談できるため、まずは話を聞いてみることから始めてみてはいかがでしょうか。
