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

Excelで週末や祝日を強調表示するにはどうすればよいですか?

Author: Xiaoyang Last Modified: 2025-08-06

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日付で動作します)を再確認してください。不一致があるとルールが失敗する可能性があります。複数の列に適用する場合は、数式のセル参照を調整してください。また、データが複数年にわたる場合、正しい非作業日を反映するために祝日リストを必要に応じて更新してください。

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

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 Aide:データ分析を革新:インテリジェント実行   |  コード生成  |  カスタム数式の作成  |  データを分析してグラフを生成  |  Kutools Functions を呼び出す
人気機能重複の検索・ハイライト・マーキング   |  空白行を削除   |  データを失わず列やセルを統合   |   丸める ...
スーパーLOOKUP複数条件VLOOKUP   複数値VLOOKUP  |  複数シートの検索  |  ファジーマッチ ....
高度なドロップダウンリストすばやくドロップダウンリストを作成   |  依存型ドロップダウンリスト   |  複数選択ドロップダウンリスト ....
列の管理:特定数の列を追加  | 列を移動  | 非表示列の表示状態を切り替え |  範囲と列の比較 ...
注目機能グリッドフォーカス   |  デザインビュー  |  強化された数式バー   ワークブック&ワークシートの管理   |  オートテキスト ライブラリ (Auto Text)   |  日付ピッカー   |  データの統合   |  セルの暗号化/復号化    リスト送信で電子メールを送信   |  スーパーフィルター   |   特殊フィルタ(太字/斜体/取り消し線でフィルタ...)
トップ15ツールセット12 種類のテキストツールテキストの追加特定の文字を削除など)  |  50 種以上のグラフ タイプガントチャートなど)  |  40を超える実用的な 数式誕生日に基づいて年齢を計算する、など)  |  19種の 挿入ツールQRコードの挿入パスから画像の挿入など)  |  12種類の 変換ツール単語に変換する通貨変換など)  |  7つの 結合&分割ツール高度な行のマージセルの分割など)  |  ...さらに多数
お好きな言語でKutoolsを使用できます ― 英語、スペイン語、ドイツ語、フランス語、中国語など40以上に対応!

Kutools for ExcelでExcelスキルを強化し、かつてない効率を体験しましょう。 Kutools for Excelは300以上の高度な機能で生産性向上と時間短縮を実現します。最も必要な機能を今すぐ取得...


Office TabはOfficeにタブ表示を追加し、作業効率を大幅に向上させます

  • Word、Excel、PowerPointでタブ編集とタブ閲覧を有効にします
  • 同じウィンドウ内の新しいタブで複数のドキュメントを開いたり作成したりできます。新しいウィンドウを開く必要はありません。
  • 生産性が50%向上し、1日に何百回ものマウスクリックも削減できます!