メインコンテンツへスキップ

Excelで週末と祝日をハイライトするにはどうすればよいですか?

Author: Xiaoyang Last Modified: 2025-07-21

Excelで日々の記録表を扱う際、通常の平日から週末や祝日を目視で区別することは、データの確認を容易にするために非常に役立ちます。このようなハイライト表示は、勤務表、プロジェクトのタイムライン、またはビジネスログなどで特に有用です。作業日と非作業日を区別することで、ビジュアル管理とその後の分析がスムーズに行えます。Excelでは、条件付き書式、カスタムヘルパー数式列、またはVBAを使用した高度な自動化など、複数の方法でこの目的を達成できます。どの方法を選ぶかは、表のレイアウト、新しいデータの追加頻度、祝日のリストが頻繁に変わるかどうかによります。


条件付き書式を使用して週末と祝日を強調表示する

Excelの条件付き書式機能を使用すると、データ内に計算を入力することなく、週末(通常は土曜日と日曜日)および祝日を自動的にハイライトできます。この方法は、ワークシートを頻繁に確認または更新するユーザーにとって適しており、データや祝日が変更されたときに即座に反映される色分けの手助けとなります。

週末と祝日のための条件付き書式を設定するには、次の手順に従ってください:

1. 強調したい日付の範囲を選択します。 

2. [ホーム] タブに移動し、[条件付き書式] をクリックして、[新しいルール] を選択してルールエディターを開きます。スクリーンショットをご覧ください:

click Home > Conditional Formatting > New Rule

3. [新しい書式ルール] ダイアログで:

  • ルールタイプリストから「数式を使用して書式設定するセルを決定」を選択します。
  • 数式入力ボックスに次の数式を入力します:=NETWORKDAYS($A2,$A2,$F$2:$F$6)=0
  • [書式] ボタンをクリックしてハイライトスタイルを設定します。
注意: この数式では、$A2は選択範囲内の最初の日付セルを指します(開始セルが異なる場合は適宜調整してください)。 $F$2:$F$6は祝日のリストを含むべきです(実際の祝日範囲に合わせて編集してください)。NETWORKDAYSは月曜日から金曜日までを労働日として扱います。別の週末スケジュールを使っている場合や特定の日だけを含めたい場合は、カスタム数式が必要かもしれません。

specify the options in the dialog box

4. [セルの書式設定] ウィンドウで、[塗りつぶし] タブに切り替え、週末と祝日の背景色を選択します。この色によって非労働日と通常の日を一目で判別できるようになります。

under the Fill tab, specify a color for highlighting the rows

5. ダイアログボックスを閉じるには、[OK] を2回クリックします。選択したエリア内で、週末またはリストアップされた祝日に一致する日付に対して、指定したハイライトが自動的に表示されます。祝日はいつでも編集でき、書式もそれに応じて更新されます。

the rows contain the weekends and holidays are shaded

ヒントとトラブルシューティング: ハイライトが表示されない場合は、日付の書式設定を再確認してください(数式は本物のExcel日付で動作します)。ミスマッチがあるとルールが失敗することがあります。複数の列に適用する場合は、数式のセル参照を調整してください。また、データが数年にわたる場合、正しい非労働日を反映するために祝日のリストを必要なように更新してください。

利点: 追加の列や手動操作は不要で、テーブルが拡張したり祝日リストが変わったりしても完全に動的です。
潜在的な制限: 条件付き書式では、1つのワークシートあたりのルール数に上限があります(稀に達する程度)。また、大規模なデータセットでは、過度に複雑な数式がワークブックのパフォーマンスを低下させる可能性があります。

a screenshot of kutools for excel ai

Kutools AIでExcelの魔法を解き放つ

  • スマート実行: セル操作、データ分析、グラフ作成を簡単なコマンドで行います。
  • カスタム数式: ワークフローを合理化するための独自の数式を生成します。
  • VBAコーディング: 簡単にVBAコードを作成し実装します。
  • 数式の解釈: 複雑な数式を簡単に理解できます。
  • テキスト翻訳: スプレッドシート内の言語障壁を取り除きます。
AI搭載ツールでExcelの機能を強化しましょう。今すぐダウンロードして、かつてないほどの効率を体験してください!

Excel 数式 – ヘルパー列を使用して週末と祝日をフラグ付けする

カラーコードの詳細なコントロールが必要なユーザー、または作業日と非作業日で並べ替え/フィルタリングを行いたいユーザーにとって、数式を使用したヘルパー列を追加するのが信頼性のある選択肢です。この手法は、各行を週末、祝日、または通常の日として明確にマークし、フィルタリング、手動での書式設定、またはデータの要約に使用できます。
この方法は、カラーコーディングだけでは不十分な場合や、週末/祝日の合計を直接集計したい場合に特に役立ちます。

日付が列 A にあり、行 2 から始まり、祝日が F2:F6 にリストされていると仮定します。日付列の隣に新しい列を挿入し、「日タイプ」という見出しを付けます。

1. セル B2(ヘルパー列)に、次の数式を入力します:

=IF(OR(WEEKDAY(A2,2)>=6,COUNTIF($F$2:$F$6,A2)>0),"Weekend/Holiday","Workday")

この数式は、各日付に対して2つのチェックを行います:
- WEEKDAY(A2,2)>=6: 土曜日(6)と日曜日(7)を週末として扱います(週末が異なる場合は、適宜調整してください)。
- COUNTIF($F$2:$F$6,A2)>0: 日付が祝日のリストに一致するかどうかを確認します。

2. その後、フィルハンドルをドラッグして他の行にも数式を適用します。データが展開されたら、「週末/祝日」でテーブルをフィルタリングして、該当する行を分離したり、手動でハイライトしたりします。必要に応じて、この列に基づいて条件付き書式を適用して色付けすることもできます。

ヒント: 週末の曜日が異なる場合は、WEEKDAYのロジックを変更してください(例:日曜日は1、または地域に応じた特定の数字を使用)。常に祝日のリストを最新の状態に保ち、データ範囲が変わった場合は必要に応じてフィルまたはコピーを再適用してください。

利点: ヘルパー列を使用すると、よりカスタマイズされたフィルタリングやレポートが可能です。必要に応じて簡単に識別、カウント、または色付けできます。
欠点: 条件付き書式と併用しない限り、データに余分な列が必要で、手動で色を塗る必要があります。


VBA コード – 週末と祝日を自動的に塗りつぶす

日付範囲を頻繁に更新する必要がある場合、または数式や条件付き書式を超えて週末と祝日のハイライト処理を自動化したい場合、シンプルなVBAマクロを使用するのは非常に効率的です。これは、長いリストや繰り返しのワークシート生成を管理するユーザーに理想的です。

マクロを使用すると、Excelは選択した日付範囲と祝日リストに基づいて、週末と祝日の日付を自動的に塗りつぶします。コード内のハイライトカラーを必要に応じて変更でき、データが変更されたときはいつでもマクロを再実行できます。

1. [開発] > Visual Basic をクリックします。Microsoft Visual Basic for Applications ウィンドウで、[挿入] > [モジュール] を選択します。

2. 次のコードを新しく作成したモジュールにコピーして貼り付けます:

Sub ShadeWeekendsAndHolidays()
    Dim rngDates As Range
    Dim rngHolidays As Range
    Dim cell As Range
    Dim xTitleId As String
    
    xTitleId = "KutoolsforExcel"
    On Error Resume Next
    Set rngDates = Application.InputBox("Select the range with dates:", xTitleId, Selection.Address, Type:=8)
    Set rngHolidays = Application.InputBox("Select the range with holiday dates:", xTitleId, , Type:=8)
    On Error GoTo 0
    
    If rngDates Is Nothing Then Exit Sub
    If rngHolidays Is Nothing Then Exit Sub
    
    Application.ScreenUpdating = False
    
    For Each cell In rngDates
        If IsDate(cell.Value) Then
            If Weekday(cell.Value, vbMonday) >= 6 Or Not IsError(Application.Match(CDbl(cell.Value), rngHolidays, 0)) Then
                cell.Interior.Color = RGB(255, 199, 206) ' Light red fill; adjust as needed
            Else
                cell.Interior.ColorIndex = xlNone ' Remove fill from regular days
            End If
        End If
    Next cell
    
    Application.ScreenUpdating = True
End Sub

3. このコードを実行するためにF5キーを押すと、プロンプトが表示され、日付セル、そして祝日のセルを選択するよう求められます。画面の指示に従ってください。

このマクロは、週末(土曜日/日曜日)と祝日(リストに従って)を塗りつぶしの色でハイライトします。必要に応じて、RGB(255,199,206)をコード内で変更して好みの色を使用してください。

ヒント:
誤って間違った範囲を選択した場合、単にマクロを再実行してください。選択範囲内の一致しないセルの既存の塗りつぶしはすべてリセットされます。
日付と祝日が正しいExcelの日付値(テキストではない)を使用していることを確認してください。

利点: 繰り返しの作業時間を節約し、高い柔軟性を提供します。手動で書式を再適用する必要はありません。
欠点: マクロはワークブックで有効にする必要があります。VBAに慣れていないユーザーは、実行前に保存し、バックアップコピーで試してみてください。


関連記事:

  • 結合セルに対する交互に行の色付け
  • 大量のデータで交互に行に異なる色を設定すると、データをスキャンするのに役立ちますが、時にはデータ内に結合セルが含まれている場合もあります。以下のスクリーンショットのように、結合セルに対しても交互に行を異なる色でハイライトするには、Excelでどのように解決すればよいでしょうか?
  • 近似一致検索のハイライト
  • Excelでは、VLOOKUP関数を使用して近似一致の値をすばやく簡単に取得できます。ただし、行と列のデータに基づいて近似一致を取得し、元のデータ範囲から近似一致をハイライトする方法については考えたことがありますか?以下のスクリーンショットのように、Excelでこのタスクを解決する方法について説明します。
  • あるセルの値が別のセルの値より大きい場合にセルをハイライトする
  • 2つの列の値を比較する際に、例えば、列Bの値が同じ行の列Cの値より大きい場合、列Bの値を下のスクリーンショットのようにハイライトしたいとします。この記事では、Excelで「あるセルの値が別のセルの値より大きい」場合にセルをハイライトする方法をいくつか紹介します。
  • ドロップダウンリストに基づいて行をハイライトする
  • この記事では、ドロップダウンリストに基づいて行をハイライトする方法について説明します。以下のスクリーンショットを例にとると、列Eのドロップダウンリストから「進行中」を選択すると、その行が赤色でハイライトされ、「完了」を選択すると青色で、「未着手」を選択すると緑色で行がハイライトされます。

最高のオフィス生産性ツール

🤖 Kutools AI アシスタント: データ分析を革命化する: インテリジェント実行   |  コード生成  |  カスタム数式の作成  |  データを分析しグラフを生成  |  拡張機能を呼び出す
人気の機能: 重複を見つけてハイライトまたはマーキング   |  空白行を削除   |  データを失わずに列またはセルを統合   |   丸める ...
スーパーLOOKUP: 複数条件のVLookup    複数値のVLookup  |   複数シートの検索   |   ファジーマッチ ....
高度なドロップダウンリスト: ドロップダウンリストを迅速に作成   |  依存ドロップダウンリスト   |  マルチセレクトドロップダウンリスト ....
列管理: 特定の数の列を追加  |  列を移動  |  非表示列の可視ステータスを切り替え  |  範囲と列を比較 ...
注目の機能: グリッドフォーカス   |  デザインビュー   |   強化された数式バー    ワークブック & ワークシート管理   |  オートテキスト ライブラリ (Auto Text)   |  日付ピッカー   |  データの統合   |  セルの暗号化/復号化    リストで電子メールを送信   |  スーパーフィルター   |   特殊フィルタ (太字/斜体/取り消し線をフィルタリング...) ...
トップ15のツールセット12 のテキストツール (テキストの追加, 特定の文字を削除, ...)  |  50以上 のグラフ の種類 (ガントチャート, ...)  |  40以上の実用的な 数式 (誕生日に基づいて年齢を計算する, ...)  |  19 の挿入ツール (QRコードの挿入, パスから画像を挿入, ...)  |  12 の変換ツール (単語に変換する, 通貨変換, ...)  |  7 の統合 & セルの分割ツール (高度な行のマージ, セルの分割, ...)  |  ...さらに多く

Kutools for ExcelでExcelスキルを強化し、これまでにない効率を体験してください。 Kutools for Excelは、300以上の高度な機能を提供し、生産性を向上させ、保存時間を節約します。  最も必要な機能を入手するにはここをクリック...


Office TabはOfficeにタブインターフェイスをもたらし、作業を非常に簡単にします

  • Word、Excel、PowerPoint、Publisher、Access、Visio、Projectでタブ付きの編集と読み取りを有効にします。
  • 新しいウィンドウではなく、同じウィンドウの新しいタブで複数のドキュメントを開いて作成します。
  • 生産性を50%向上させ、毎日数百回のマウスクリックを減らします!