崩れた条件付き書式をボタン1つで元どおりにする|Excel VBAの修復ボタン(シフト表ツールの実装例)
まずは動画で、考え方と実際の画面をご覧ください(動画内のデータはサンプルです)。
条件付き書式の色分け、いつの間にか崩れていませんか。
この記事では、飲食店向けに納品したシフト作成ツール(Excel VBA)で使った工夫のひとつ、条件付き書式の「修復ボタン」を紹介します。シリーズの3本目です。1本目では「時間帯別の自動配置」、2本目では「ブックをまたぐ年間集計」を取り上げました。
条件付き書式は、使っているうちに崩れていく
シフト表では、出欠や勤務時間のマスを条件付き書式で色分けしておくと、ひと目で状況が分かります。ところが条件付き書式には、困った性質があります。
コピーや貼り付けを繰り返すうちに、ルールが細かく分かれていく
同じ意味のルールが、適用先の範囲ごとにばらばらに増えていく
そのうち、色が付かないマスが出てくる
下の図は、そのイメージです。最初は3つだったルールが、使っているうちに適用先ごとに分かれて9つに増え、一部のマスには色が付かなくなっています。

こうなると、Excelの「条件付き書式ルールの管理」を開いて、一つずつ直すのはかなり大変です。共有して使うExcelほど、この崩れは起きやすくなります。
ルールはコードで持ち、ボタンで付け直す
そこで、条件付き書式のルールをVBAのコードで持っておき、ボタン1つで付け直せるようにしました。ツールのシート上には「条件付き書式復活」というボタンを置いています。
やっていることは、次の2つだけです。
表のルールを、いったん全部消す(.FormatConditions.Delete)
決めたルールを、同じ順番で作り直す(数式で指定する条件付き書式)

崩れたルールを一つずつ探して直すのではなく、「全部消して、正しいルールを作り直す」と割り切るのがポイントです。どれだけルールが分かれていても、ボタンを押せば毎回同じ状態に戻ります。
作り直すルール
このツールで作り直しているルールは、次のとおりです。
出欠の列:「○」なら青、「×」ならオレンジ
開始・終了の時刻の列:同じ行の出欠が「○」なら青、「×」なら灰色
開始・終了の時刻の列:開始と終了の片方だけが入っていたら赤
時刻のマスは、自分の値ではなく、隣にある出欠のマスを見て色を決めています。数式で指定する条件付き書式では、条件に使うセルをずらして書くことで、このように「隣のマスを見て色を付ける」ことができます。

開始と終了の片方だけが入っているマスを赤にしておくと、終了時刻の入れ忘れなどの入力漏れがひと目で分かります。色分けは見やすさのためだけでなく、入力のチェックにも使えます。
実際の画面
付け直したルールは、Excelの「条件付き書式ルールの管理」でも確認できます。

管理画面には、次の3つのルールが並んでいます。
=F9="○"(青)
=F9="×"(灰色)
=AND(H9<>"",G9="")(赤)
どれも数式で指定するルールで、適用先には各日の時刻の列がまとめて入っています。ボタンを押すたびに、この形に作り直されます。
ツール全体の画面では、右上に「条件付き書式復活」のボタンがあります(データはサンプルです)。

応用のヒント
壊れやすい設定をコードから作り直す考え方は、条件付き書式のほかにも使えます。
入力規則(ドロップダウン):選択肢のリストを、範囲ごとに設定し直す
印刷範囲・改ページ:行が増えても、印刷の設定を作り直す
名前の定義・書式:崩れた表を、決まった形に戻す
ルールの「正解」をコードに残しておけば、いつでも同じ状態に戻せます。誰がどのように触っても、ボタン1つで元の形に戻せる安心感は、共有して使うExcelでは特に大きいと感じています。

動画で見る
この記事の内容は、YouTubeでも紹介しています。
この回のショート動画:崩れた条件付き書式をボタンで元どおり|Excel VBA 実装例(2026年11月20日公開)
6つの工夫をまとめた本編:シフト表ツールの工夫6選(2026年11月17日公開)
まとめ
条件付き書式は、コピーや貼り付けを繰り返すうちにルールが分かれ、色が付かないマスが出てくる
ルールをVBAのコードで持ち、「全部消して、決めたルールを作り直す」ボタンを用意しておく
時刻のマスは隣の出欠を見て色を付け、開始と終了の片方だけなら赤にして入力漏れを知らせる
同じ考え方は、入力規則や印刷範囲など、ほかの壊れやすい設定にも使える
一つずつ直すのではなく、正しい状態をコードに残して作り直す。シンプルですが、長く使う業務ツールを安定させるうえで役に立つ考え方の一つです。


