【Excel】月間予定表を自動化|条件付き書式で土日・祝日を自動色付け&日付を自動生成

Excel超活用術

こんにちは、デンスケです!

毎月の月間予定表を Excel で作るたびに、日付を入力したり、土日や祝日の色を付けたりする作業は意外と手間がかかります。 自動化したいと思っても、条件付き書式の設定が複雑で、どこから手を付ければよいのか迷いがちです。

この記事では、条件付き書式を使って月間予定表を自動化する方法を、完成イメージ・手順・仕組みの順に分かりやすく解説します。 日付の自動生成、土日・祝日の自動色付け、その月に存在しない日付の非表示まで、実務で使える形に仕上げます。

完成イメージ

まずは、完成した月間予定表のイメージをご覧ください。

年と月を入力すると、その月の日付と曜日が自動的に表示され、土日・祝日の行が自動で色付けされます。さらに、その月に存在しない日付(29〜31日など)は自動的に非表示になります。

これらの処理は、次の条件付き書式によって実現しています。

続いて、これらを実現するための具体的な手順と仕組みを解説していきます。

月間予定表を自動生成する手順

月間予定表を自動化するために、まずは表の枠組みを作り、その後に条件付き書式を設定していきます。

まずは例として、2026年4月の月間予定表を作成します。ここで作った表は、後から年月を変更して再利用できます。

表の枠組みを作る

月間予定表の自動化を行うために、まずは日付と曜日を配置するための表の枠組みを作成します。

次のように、2 行目に作成する月間予定表の「年」と「月」を入力し、4 行目に項目名、5 行目以降に具体的な予定を入力する形式で、31 日分の行をあらかじめ用意します。

B5 セルに =DATE(B2, C2, 1)を入力し、その月の初日となる日付データを作成します。DATE 関数の仕組みや表示形式の設定については、この後のセクションで詳しく解説します。

B6 セルに =B5+1を入力し、2日目の日付データを作成します。

C5セルに =B5を入力し、1日目の日付データを参照させます。曜日は後ほど表示形式を変更して表示させます。

同様に、C6セルに=B6を入力し、2日目の日付データを参照させます。

B6:C6を選択し、オートフィルで31日目までコピーします。

続いて、①〜④に対して、順番に表示形式を設定していきます。

①のセルには年が数値データとして入力されているため、数値の後ろに「年」を付けて表示できるよう、表示形式の「ユーザー定義」で、書式文字列に #"年" を設定します。なお、セルの書式設定は対象セルを選択した状態で Ctrl+1 を押すと開くウインドウから変更できます。

同様に、②のセルには数値の後ろに「月」を付けて表示できるよう、表示形式の「ユーザー定義」で、書式文字列に #"月" を設定します。

③のセル範囲には、①・②と異なり、DATE 関数によって作成された “日付データ(シリアル値)” が入力されています。日付データのうち「日」の部分だけを表示するため、表示形式の「ユーザー定義」で書式文字列にd"日" を設定します。

④のセル範囲には、③と同様に“日付データ(シリアル値)” が入力されています。曜日を表示するため、表示形式の「ユーザー定義」で書式文字列にaaa を設定します。

これで表の枠組みは完成し、次のようになります。 最終行には 5 月 1 日が表示されていますが、条件付き書式を設定すると、その月に存在しない日付として自動的に非表示になります。

祝日リストを用意する

祝日行を自動で色付けするために、まず祝日リストを用意します。

祝日リストは自分で作成しても構いませんが、内閣府が公開している『国民の祝日について』から CSV 形式で祝日データを取得できるため、これを利用すると便利です。

「syukujitsu」シートを作成し、そのデータを貼り付けます。

条件付き書式を設定する

表の枠組みと祝日リストができたら、土日・祝日の色付けや存在しない日付の非表示を行うための条件付き書式を設定します。なお、数式の動作原理については後のセクションで詳しく解説します。

これから設定する4種類の条件付き書式は、いずれも日付データの範囲 B5:E35 を対象とします。

設定範囲を選択した状態で、ホームタブの「条件付き書式」から「新しいルール」を選び、4つのルールを順に設定していきます。

①WEEKDAY 関数を使って土曜行を水色にする条件付き書式ルールを設定

数式欄に=WEEKDAY($B5)=7を入力します。

書式設定では、塗りつぶしの色に水色を指定します。

②WEEKDAY 関数を使って日曜行をピンクにする条件付き書式ルールを設定

数式欄に=WEEKDAY($B5)=1を入力します。

書式設定では、塗りつぶしの色にピンクを指定します。

③COUNTIF関数を使って祝日行をピンクにする条件付き書式ルールを設定

数式欄に =COUNTIF(syukujitsu!$A:$A,$B5) を入力します。

書式設定では、塗りつぶしの色にピンクを指定します。

④MONTH関数を使ってその月に存在しない日付を非表示にする条件付き書式ルールを設定

数式欄に =MONTH($B5)<>$C$2 を入力します。

書式設定では、フォントの色を白にします。

さらに、罫線の設定を追加します。初期状態では、赤枠で示した部分について、セルのまわりの四辺がグレーの線で囲まれているはずです。

左側の線を一度クリックすると、次のように実線で表示されます。

もう一度左側の線をクリックすると、次のように線が消えた状態になります。

同じ手順で、右側と下側の罫線も非表示に設定します。

⑤非表示となるセルに色付けを適用しないための停止ルールを設定

ホームタブの「条件付き書式」から「ルールの管理」を選択し、設定済みのルール一覧を表示します。

書式ルールの表示は「このワークシート」を選択します。初期状態では、右側の「条件を満たす場合は停止」のチェックボックスには何もチェックが入っていないはずです。一番上のルール(その月に存在しない日付を非表示にする)に対して、チェックを入れます。

⑤完成

以上で設定は完了です。最初に示した完成イメージどおりに仕上がります。

B2 セルに年、C2 セルに月を入力すると、日付と曜日が自動生成され、土日・祝日の色付けが行われます。また、その月に存在しない日付は自動的に非表示になります。

例えば、2027 年 2 月を指定した場合は次のようになります。なお、B2 セルと C2 セルは表示形式によって「年」「月」と表示されますが、入力する値は数値のみとしてください。

自動化の仕組みを解説

ここまでは自動化の手順を中心に説明してきましたが、ここからはその仕組みについて解説していきます。

DATE 関数で日付を自動生成し、表示形式を整える

EXCELの日付データは、内部的には実際には「シリアル値」という数値で保存されています。シリアル値とは「1900年1月1日」を「1」として、1 日ごとに 1 ずつ増加させて表現する数値のことです。例えば、「1900年1月2日」は「2」、「2026年1月1日」は「46023」です。

このシリアル値に対して表示形式を設定することで、日付や曜日など、さまざまな形式で表示させることができます。

DATE 関数は、年・月・日の数値を指定することで、対応する日付のシリアル値を生成する関数です。

【例】
 入力:=DATE(2026,4,1) 
 出力:2026/4/1

なお、セルの表示形式が「標準」の場合は、日付を返す関数の結果が自動的に日付形式へ切り替わります。これは、日付として解釈できる文字列を入力した際に、Excel が日付データとして認識する仕組みと同じ動作です。

表示形式に d を設定すると、日付データの「日」の数値を表示できます。d day の頭文字です。

なお、表示形式に d"日" のようにダブルコーテーションで囲った文字列を付け加えると、その文字もあわせて表示させることができます。

また、表示形式に aaa を設定すると、日付データの曜日(1 文字)を表示できます。aabbreviated(短縮形)の頭文字です。

WEEKDAY 関数+条件付き書式で土日行を自動で色付け

WEEKDAY 関数は、日付データを指定することで曜日を判定し、その曜日に対応する数値を返す関数です。既定の設定では、1 が日曜日、2 が月曜日 … 7 が土曜日に対応します。

数式を用いた条件付き書式では、各セルに対して、イコールに続く部分がTRUEかFALSEかを判定し、TRUEの場合に書式が反映されます。

=WEEKDAY($B5)=7 という数式を設定した場合は、論理式「WEEKDAY($B5)=7」が成立するときにTRUEが返され、設定した書式が反映されます。

なお、数式内でセルを参照する場合は、設定範囲の最も左上のセルを基準に記載します。$B5 のように列に絶対参照($)を付けているため、B5 の日付が土曜日であれば、同じ行の C5、D5、E5 も同じ条件で TRUE となり、設定した書式が行全体に適用されます。

🔗 この記事は「条件付き書式の実践編」です

条件付き書式の仕組みをまだ理解していない方は、 先にこちらの 基本編 を読むとスムーズです。

COUNTIF 関数+条件付き書式で祝日行を自動で色付け

COUNTIF 関数は、指定した範囲の中で「条件を満たすセルの数」を数える関数です。

COUNTIF(syukujitsu!$A:$A,$B5) と設定した場合は、「syukujitsu」シートのA列全体のうち、B5の値と一致するセルの個数が返されます。

EXCELでは、0はFALSE、0以外の数値はTRUEとして扱われます。そのため、条件付き書式に=COUNTIF(syukujitsu!$A:$A,$B5) という数式を設定した場合は、B列の日付データが祝日リストに含まれていればCOUNTIFの結果が1以上になり、TRUEと判定されます。結果として、その行全体に設定した書式が適用されます。

MONTH関数+条件付き書式で、その月に存在しない日付を非表示にする

MONTH 関数は、日付データを指定すると、その「月」に対応する数値を返す関数です。

=MONTH($B5)<>$C$2 という数式を設定した場合は、論理式「MONTH($B5)<>$C$2」が成立するときにTRUEが返され、設定した書式が反映されます。

B列の日付データの「月」がC2セルの月と一致しない場合、論理式はTRUEと判定されるため、その行全体に設定した書式(フォントを白・罫線非表示)が適用されます。

条件付き書式の優先順位を整理する

「条件付き書式のルールの管理」に表示されるルール一覧では、後から設定したルールほど上に並び、上に表示されているルールほど優先的に適用されます。

例えば、「土曜を水色にするルール」よりも「祝日をピンクにするルール」が上に表示されている場合、同じ日が土曜かつ祝日に該当すると、上位のルールが優先されるためピンクで色付けされます。

今回の場合、「その月に存在しない日付を非表示にするルール」を一覧の一番上に配置し、さらに「条件を満たす場合は停止」にチェックを入れています。このチェックを入れていない場合、非表示とした日付が土日祝に該当すると、後続の色付けルールが適用されてしまうため、必ずチェックを入れる必要があります。

このように、複数のルールに該当するデータがある場合は、どの書式を優先して適用したいかを踏まえて、ルールの並び順や「条件を満たす場合は停止」の要否を適切に設定する必要があります。

まとめ|条件付き書式で月間予定表を自動で仕上げる

この記事では、条件付き書式を活用して、Excel の月間予定表を自動で見やすく整える方法を解説しました。

この記事で身につくこと:

  • 日付(シリアル値)と DATE / MONTH / WEEKDAY 関数の仕組みを理解し、日付判定に応用できる
  • COUNTIF 関数で祝日リストとの一致判定ができる
  • 条件付き書式で「土日」「祝日」「存在しない日付」を自動判定できる
  • ルールの優先順位と「条件を満たす場合は停止」を理解し、複数ルールを意図どおりに制御できる
  • 毎月の予定表を、手作業なしで効率的に更新できる

条件付き書式を活用した月間予定表は、崩れにくく、更新に強く、視認性の高いレイアウトを自動で維持できるという大きなメリットがあります。 今回の方法を取り入れることで、毎月の予定表作成が格段に効率化され、実務で使いやすいシートを安定して運用できます。

次に読むべき記事

条件付き書式の仕組みや考え方を基礎から解説しています。

条件付き書式を使って「日付を入力するだけで工程表(ガントチャート)が自動で色付けされる仕組み」を紹介します。

タイトルとURLをコピーしました