ビジネスやプライベートのスケジュール管理において、エクセル(Excel)でカレンダーを作成する際、土曜日や日曜日、そして国民の祝日を自動でハイライトできたら非常に便利です。毎回手動でセルに色を付けていると、日付を変更した際に色がズレてしまったり、祝日の見落としが発生したりするリスクが高まります。2026年現在の実務現場においても、業務効率化やミス防止の観点から、関数と条件付き書式を組み合わせた自動色付けのスキルは必須と言えます。
本記事では、エクセルのカレンダーやスケジュール表で祝日を自動で色付けする方法を分かりやすく解説します。条件付き書式を使った土日祝の自動ハイライト設定手順から、祝日一覧の作成・関数活用のコツまで実務で役立つテクニックを徹底紹介します。
エクセルで土日祝日を自動色付けする仕組みと基本原則

エクセルのカレンダーや業務スケジュール表で、土日や祝日を自動的に判別して色を変えるためには、セルの「条件付き書式」機能を利用します。条件付き書式とは、指定した数式や条件が「真(TRUE)」になった場合にのみ、自動的にセルの背景色や文字色を変更してくれる強力な機能です。
通常、土曜日は青文字、日曜日は赤文字、祝日も赤文字(または背景色を変更)にしたいという要望が多く見られます。これを一つひとつ手動で設定していると、翌年のカレンダーを作成する際や、祝日が移動した際にすべての設定をやり直さなければならなくなります。しかし、日付データに対して「曜日を判別する関数」と「祝日リストに該当するかを判定する関数」を条件付き書式に組み込んでおけば、日付が変わるだけで自動的に色が追従する仕組みが完成します。
ここで鍵となるのが、エクセルの日付データの持ち方です。エクセルでは日付を「シリアル値(1900年1月1日を1とした通し番号)」として管理しているため、曜日の判定や日数計算が数学的に処理できます。この特性を最大限に活かすことで、無駄な手間を一切かけずに美しいカレンダーを運用することができるのです。
祝日一覧(休日リスト)の正確な作成方法とデータ準備
土日については WEEKDAY 関数などを活用して容易に判定できますが、「祝日」を自動で色付けするためには、あらかじめエクセル上に「祝日一覧(休日データ)」を作成しておく必要があります。国民の祝日は年によって変動するもの(ハッピーマンデー制度や春分の日・秋分の日など)があるため、正確な日付リストを用意することが自動化の成否を握ります。
祝日一覧を作成する際は、以下のような手順で表を整理するのが実務的です。一般的には、カレンダー表とは別のシート、または同じシートの目につかない余白部分に「A列:日付」「B列:祝日名」といった形式でリストを配置します。
| 列名(項目) | 設定内容・データ例 | 実務上のポイント・注意点 |
|---|---|---|
| 日付(A列) | 2026/1/1, 2026/1/12, 2026/2/11... | 必ず「セルの書式設定」で日付形式(YYYY/M/Dなど)に統一しておくこと。 |
| 祝日名(B列) | 元日, 成人の日, 建国記念の日... | 関数での判定には直接使わないが、何の祝日か視覚的に確認できるよう記載を推奨。 |
| 範囲定義(名前の管理) | 「祝日一覧」などの名前を定義 | 条件付き書式の数式で参照する際、範囲を絶対参照にするか名前定義しておくとエラーを防げる。 |
このように作成した祝日リストの範囲(例:$H$2:$H$20 など)に対して、「名前の管理」機能で「祝日」といった名前を付けておくと、後ほど条件付き書式や関数を設定する際に数式が非常にシンプルになり、メンテナンス性も飛躍的に向上します。
WEEKDAY関数とMATCH関数を活用した休日判定の数式
祝日一覧の準備が整ったら、次に行うべきなのはカレンダーの日付セルに対して適用する判定用ロジックの構築です。ここで用いられる代表的な関数が WEEKDAY関数 と MATCH関数(または COUNTIF関数)です。
最初に、土日を判定するための WEEKDAY関数は、指定した日付の曜日を数値(1〜7)で返します。例えば、=WEEKDAY(B4, 2) と記述すると、月曜日を「1」、日曜日を「7」とする形式で曜日の数値を取得できます。これを利用して、数値が「6」なら土曜日、「7」なら日曜日と判定させることが可能です。
続いて、祝日を判定するためには、MATCH関数や COUNTIF関数を使用します。例えば =COUNTIF(祝日一覧, B4) と記述した場合、セルB4の日付が祝日リストの中に含まれていれば「1(以上)」を返し、含まれていなければ「0」を返します。この仕組みを利用すれば、曜日だけでなく国民の祝日も完璧に網羅してキャッチすることができます。
実務では、これらを「OR関数」で繋いで「土曜日の条件」「日曜日の条件」「祝日の条件」のいずれかに該当する場合に TRUE を返す数式を組み立て、条件付き書式に組み込むのが最もスマートなアプローチとなります。
条件付き書式を使った土日祝の自動ハイライト設定手順
関数とリストの準備ができたら、いよいよエクセル上で条件付き書式を設定し、カレンダーを自動ハイライトさせます。以下のステップに従って操作を行うことで、誰でも迷うことなく設定を完了させることができます。
【ステップ1:カレンダーの範囲を選択する】
色を付けたいカレンダーの日付が入っているセル範囲(例:B4:H15 など)をマウスでドラッグして選択します。このとき、選択する起点のセル(アクティブセル)がどこにあるかを確認しておきます(数式内のセル参照の基準になります)。
【ステップ2:条件付き書式ルールの新規作成を開く】
エクセル上部のホームタブにある「条件付き書式」をクリックし、「新しいルール」を選択します。ルールの種類の中から「数式を使用して、書式設定するセルを決定」を選びます。
【ステップ3:判定用の数式を入力する】
「次の数式を満たす場合に値を書式設定」の入力欄に、前項で解説した判定ロジックを入力します。例えば、以下のような数式を設定します。
=OR(WEEKDAY(B4,2)=6, WEEKDAY(B4,2)=7, COUNTIF(祝日一覧,B4)>0)
※ここで列を固定するために $B4 のように複合参照に調整が必要です。
【ステップ4:フォントの色や背景色を指定する】
「書式」ボタンをクリックし、塗りつぶしタブやフォントタブから、土日祝日に適用したい色(日曜・祝日は赤文字、土曜は青文字など)を選択して「OK」を押します。
最後に全体のルールを確認して適用すれば、カレンダー上の該当する土曜日、日曜日、そして祝日のセルが瞬時に、かつ自動的にハイライトされます。
マクロ不要で安全!実務でエラーを防ぐためのコツと注意点
エクセルの自動化というとVBA(マクロ)を連想する方も多いですが、マクロを導入するとセキュリティ設定の壁にぶつかったり、ファイル形式が制限されたり(.xlsmでの保存が必要など)、共有時のハードルが高くなります。今回紹介した条件付き書式と関数によるアプローチであれば、標準のExcelファイル(.xlsx)のままで完全な自動化が実現できるため、マクロ不要で安全に運用できます。
実務で運用する際によくあるトラブルとして、「日付のデータ型が文字列になっており、関数が正しく反応しない」という現象が挙げられます。エクセルに手入力で「1/1」と入れたつもりが、文字列として認識されていると WEEKDAY関数や COUNTIF関数が正しく機能しません。必ず「セルの書式設定」を確認し、日付データとして認識されていることを担保してください。
また、毎年新しく発表される祝日の変更や追加に対応できるよう、祝日一覧のシートは定期的にメンテナンスしやすい位置に配置し、担当者が変わっても引き継ぎがスムーズにいkáよう数式にコメントを残しておくことも、プロフェッショナルな実務運営の要点です。
【エクセル祝日色付け】に関するよくある質問(FAQ)
Q1:土曜日と日曜日で文字の色を別々に変えたい場合はどうすればいいですか?
A1:条件付き書式を1つだけでなく、土曜日用と日曜日用(および祝日用)に分けて個別に作成します。土曜日用には =WEEKDAY(B4,2)=6 を設定して青文字にし、日曜日・祝日用には =OR(WEEKDAY(B4,2)=7, COUNTIF(祝日一覧,B4)>0) を設定して赤文字にするなど、ルールを複数重ねることで曜日ごとの色分けが可能になります。
Q2:祝日一覧の範囲指定で「名前の定義」を使うメリットは何ですか?
A2:数式内で COUNTIF($H$2:$H$20, B4) と絶対参照で記述すると、シートの行挿入や削除を行った際に参照ズレ(エラー)が発生しやすくなります。あらかじめ範囲に「祝日一覧」という名前を定義しておけば、数式が COUNTIF(祝日一覧, B4) となり、シート構造の変更に強い堅牢なカレンダーを作成できます。
Q3:前月や翌月の「空白セル」や「別月の日付」にも色がついてしまいます。防ぐ方法はありますか?
A3:カレンダーのレイアウト上、当月以外の余白日付が表示される場合、そのまま条件付き書式を適用すると余白の日付の曜日や祝日にも色がついてしまいます。これを防ぐためには、条件付き書式の数式に「当月の日付であること(例: =AND(MONTH(B4)=MONTH($A$1), OR(...)) など)」という条件をAND関数で追加することで、余分なセルの色付けを綺麗に回避できます。
エクセルにおけるスケジュール管理やカレンダー作成は、ビジネスの生産性を左右する身近でありながら重要なタスクです。今回解説した「条件付き書式」と「祝日一覧の活用」、そして「関数による自動判定」の組み合わせをマスターすることで、手動によるヒューマンエラーを完全に排除し、美しく精度の高いカレンダーを半永久的に運用できるようになります。
マクロを導入するほどではないが、毎月のメンテナンスの手間をなくしたい、あるいは社内共有用のテンプレートの品質を底上げしたいと考えている方にとって、この手法はコストパフォーマンスが最も高い解決策です。ぜひ自身の業務環境に取り入れ、実務の効率化を実感してください。