Excel

Excel「条件を満たす場合は停止」とは?使い方・優先順位・VBAまで完全解説

しんたろ。

Excelの条件付き書式で「条件を満たす場合は停止」というチェックボックスを見つけたけれど、何のための機能かわからない…そんな疑問を解決します。

「条件を満たす場合は停止」は、条件付き書式の複数ルールの適用順序を制御するための重要な機能です。この機能を使いこなせば、ルール同士の干渉を防ぎ、意図通りの書式設定を実現できます。

本記事では、「条件を満たす場合は停止」の意味から、設定方法、実務での活用例、VBAでの制御方法まで、この機能の全てを解説します。

この記事でわかること
  • 「条件を満たす場合は停止」の意味と仕組み
  • ルールの管理画面での設定方法(ショートカットキー付き)
  • 実務で役立つ活用例3選
  • データバー・アイコンセットで使えない場合の対処法
  • VBA(StopIfTrueプロパティ)での制御方法
  • よくあるトラブルと解決法
この記事の目次
  1. 「条件を満たす場合は停止」とは?(Stop If True)
  2. 条件付き書式のルール優先順位の仕組み
  3. 「条件を満たす場合は停止」の設定方法【ステップバイステップ】
  4. 実務で役立つ活用例3選
  5. 「条件を満たす場合は停止」の注意点と制限事項
  6. 【応用】VBA/マクロで「条件を満たす場合は停止」を制御する方法
  7. よくあるトラブルと解決法
  8. StopIfTrue設定の効果をデモで確認
  9. まとめ
  10. LINEでExcelを気軽に学べる

「条件を満たす場合は停止」とは?(Stop If True)

「条件を満たす場合は停止」(英語名: Stop If True)は、Excelの条件付き書式で複数のルールが設定されている場合に、あるルールの条件が満たされたら、それより下位(優先度が低い)のルールの評価を止める機能です。

基本的な意味と動作

条件付き書式では、1つのセル範囲に対して複数のルールを設定できます。これらのルールは「ルールの管理」画面で一覧表示され、上から順に優先度が高くなります。

通常(チェックなし)の場合:

  • すべてのルールが上から順に評価される
  • 条件を満たすルールが複数あれば、書式が重複して適用される
  • フォント色は最優先ルール、背景色は別のルール…というように混ざることがある

「条件を満たす場合は停止」をONにした場合:

  • そのルールの条件が満たされると、それ以降のルールは評価されない
  • つまり「このルールが当てはまったら、他のルールは無視する」という動作になる

なぜこの機能が必要なのか?

実務では、以下のような場面でルールの干渉が問題になります。

  • タスク管理表で「完了」行をグレーアウトしたいのに、優先度ルールの色が残ってしまう
  • 在庫管理表で「出荷停止」の赤色が、数量ルールの緑色に上書きされてしまう
  • データ入力フォームで、エラー表示より先に別の書式が適用されてしまう

「条件を満たす場合は停止」を使えば、最も重要な条件が満たされた時点で他の書式を無効にできます。

「Stop If True」の英語名について

英語版Excelでは “Stop If True” と表示されます。海外のチュートリアルやMicrosoftの公式ドキュメントで検索する際に知っておくと便利です。VBAでは FormatCondition.StopIfTrue プロパティとして操作します。

条件付き書式のルール優先順位の仕組み

「条件を満たす場合は停止」を正しく使うには、ルールの優先順位の仕組みを理解する必要があります。

ルールの評価順序

条件付き書式のルールは、「ルールの管理」画面で上に表示されるものほど優先度が高くなります。

優先度ルール例書式
高(1番目)値が「完了」の行グレー背景 + 取り消し線
中(2番目)値が80以上緑背景
低(3番目)値が50未満赤背景
重要

後から追加したルールが自動的に最上位(最優先)になります。意図した順序になっているか、必ず「ルールの管理」で確認しましょう。

チェックなしの場合の動作(デフォルト)

デフォルトでは「条件を満たす場合は停止」はOFFです。この場合、条件を満たす全てのルールの書式が重複して適用されます。

例: セルの値が「完了」かつ85の場合

  • ルール1(完了→グレー背景): 適用 ✓
  • ルール2(80以上→緑背景): 適用 ✓ → グレーと緑が競合

結果として、フォント色は上位ルール、背景色も上位ルールが優先されますが、書式の種類によっては予期しない表示になることがあります。

チェックありの場合の動作

ルール1に「条件を満たす場合は停止」をONにすると:

例: セルの値が「完了」かつ85の場合

  • ルール1(完了→グレー背景): 適用 ✓ → ここで停止
  • ルール2(80以上→緑背景): 評価されない ✗

結果として、グレー背景のみが適用され、意図通りの表示になります。

「条件を満たす場合は停止」の設定方法【ステップバイステップ】

Step1: 条件付き書式のルールの管理を開く

条件付き書式の「ルールの管理」画面を開く方法は3つあります。

方法1: リボンから開く

  1. 「ホーム」タブをクリック
  2. 「条件付き書式」→「ルールの管理」を選択

方法2: ショートカットキーで開く

Alt → H → L → R(順番に押す)

方法3: 右クリックから開く(条件付き書式が設定済みのセルで)

  1. セルを右クリック
  2. 「条件付き書式」→「ルールの管理」

Step2: 書式ルールの表示対象を変更する

「ルールの管理」画面が開いたら、画面上部の「書式ルールの表示」ドロップダウンで表示対象を選択します。

  • 「現在の選択範囲」: 選択中のセルに適用されているルールのみ表示
  • 「このワークシート」: シート全体のルールを一覧表示
ポイント

対象のルールが表示されない場合は「このワークシート」に切り替えてみましょう。

Step3: ルールの優先順位を確認・変更する

ルール一覧で上にあるものほど優先度が高くなります。順序を変更するには:

  1. 変更したいルールを選択
  2. 「▲」(上へ移動)または「▼」(下へ移動)ボタンで順序を変更

Step4: 「条件を満たす場合は停止」にチェックを入れる

ルール一覧の右側に「条件を満たす場合は停止」のチェックボックスがあります。

  1. チェックを入れたいルールの「停止」列をクリック
  2. チェックマークが表示されたことを確認
  3. 「OK」または「適用」をクリックして反映
注意

「適用」ボタンを押すと、画面を閉じずに変更を確認できます。動作を確かめてから「OK」で閉じましょう。

実務で役立つ活用例3選

活用例1: 完了行を最優先でグレーアウトする(タスク管理表)

タスク管理表で「完了」になった行を優先してグレーアウトし、他の色分けルール(優先度高=赤、中=黄、低=緑)を無効にするケースです。

設定内容:

  • ルール1(最優先): =$C1=”完了” → グレー背景 + 取り消し線 + 条件を満たす場合は停止 ON
  • ルール2: =$B1=”高” → 赤背景
  • ルール3: =$B1=”中” → 黄背景
  • ルール4: =$B1=”低” → 緑背景
ポイント

ルール1に「条件を満たす場合は停止」を設定することで、完了行は必ずグレーアウトされ、優先度の色分けが残りません。

活用例2: 出荷判定に基づく行全体の色分け(在庫管理表)

在庫管理表で、出荷停止→赤、在庫少→黄、正常→緑の3段階で色分けするケース。上位ルールの条件が当てはまったら、下位のルールは無視したい場合に使います。

設定内容:

  • ルール1(最優先): =$D1=”出荷停止” → 赤背景 + 白文字 + 停止 ON
  • ルール2: =$E1<10 → 黄背景 + 停止 ON
  • ルール3: =$E1>=10 → 緑背景
ポイント

ルール1とルール2の両方に「停止」を設定しています。「出荷停止」かつ「在庫少」の場合、赤背景(ルール1)のみが適用されます。

活用例3: エラー値の表示を最優先にする(データ入力フォーム)

入力フォームでエラー値(#N/A、#VALUE!など)が含まれるセルを最優先で赤くし、他の書式ルール(入力済み=緑、未入力=灰色)を無効にするケース。

設定内容:

  • ルール1(最優先): =ISERROR(A1) → 赤背景 + 赤文字 + 停止 ON
  • ルール2: =A1<>”” → 緑背景
  • ルール3: =A1=”” → 灰色背景
ポイント

ISERRORでエラーを検出したセルは赤で統一され、入力状態の色分けは適用されません。

「条件を満たす場合は停止」の注意点と制限事項

データバー・カラースケール・アイコンセットでは使えない

「条件を満たす場合は停止」のチェックボックスがグレーアウトしてクリックできない場合があります。以下の書式タイプでは、この機能は使用できません。

使用不可の書式タイプ:

  • データバー
  • カラースケール(2色/3色)
  • アイコンセット
対処法
  • これらの書式と「セルの強調表示ルール」等を併用する場合は、ルールの優先順位で制御する
  • または、ルールの適用範囲を分けて干渉を避ける

ルールの順番が意図通りか必ず確認する

新しいルールを追加すると、自動的にリストの最上位(最優先)に配置されます。そのため、既存のルールとの優先順位が崩れることがあります。

確認のポイント
  • ルールを追加・変更した後は、必ず「ルールの管理」で順序を確認
  • 「条件を満たす場合は停止」が意図したルールにのみ設定されているか確認

コピー&ペーストでルールが増殖する問題と対策

条件付き書式が設定されたセルをコピー&ペーストすると、ルールが複製されて増殖することがあります。ルールが増えすぎるとファイルが重くなり、表示も遅くなります。

対策:

  1. 「ルールの管理」で重複ルールを定期的に確認・削除する
  2. 「形式を選択して貼り付け」→「値のみ」で書式をコピーしない
  3. VBAで一括クリーンアップ(後述)

【応用】VBA/マクロで「条件を満たす場合は停止」を制御する方法

VBAでは FormatCondition.StopIfTrue プロパティを使って、条件付き書式の「条件を満たす場合は停止」をプログラムから制御できます。

StopIfTrueプロパティの基本

StopIfTrue プロパティは Boolean 型で、True/False を設定します。

動作
True条件を満たす場合、後続のルールを評価しない
False条件を満たしても、後続のルールも評価する(デフォルト)

VBAコード例: ルールにStopIfTrueを設定する

Sub SetStopIfTrue()
    Dim ws As Worksheet
    Set ws = ActiveSheet

    ' A1:A100の1番目の条件付き書式にStopIfTrueを設定
    ws.Range("A1:A100").FormatConditions(1).StopIfTrue = True

    MsgBox "StopIfTrueを設定しました"
End Sub

VBAコード例: 全ルールのStopIfTrue状態を一覧確認する

Sub CheckAllStopIfTrue()
    Dim ws As Worksheet
    Dim rng As Range
    Dim fc As FormatCondition
    Dim i As Long

    Set ws = ActiveSheet
    Set rng = ws.UsedRange

    For i = 1 To rng.FormatConditions.Count
        Set fc = rng.FormatConditions(i)
        Debug.Print "ルール" & i & ": StopIfTrue = " & fc.StopIfTrue & _
                    " | 数式: " & fc.Formula1
    Next i
End Sub

VBAコード例: 重複ルールを一括削除する

条件付き書式のルールが増殖してしまった場合の一括クリーンアップ用コードです。

Sub CleanupDuplicateRules()
    Dim ws As Worksheet
    Set ws = ActiveSheet

    ' シート全体の条件付き書式を一旦すべて削除
    ws.Cells.FormatConditions.Delete

    MsgBox "条件付き書式をすべて削除しました。" & vbCrLf & _
           "必要なルールを再設定してください。"
End Sub
注意

上記コードは全ルールを削除します。必要なルールのバックアップを取ってから実行してください。

よくあるトラブルと解決法

Q1. 「条件を満たす場合は停止」がグレーアウトしてチェックできない

原因: データバー、カラースケール、アイコンセットのルールでは、この機能は使用できません。

対処法
  • ルールの種類を確認し、「セルの強調表示ルール」や「数式を使用して…」のルールであることを確認
  • これらの書式タイプでルールの干渉を避けるには、適用範囲を分ける方法を検討

Q2. 条件付き書式の優先順位が反映されない

原因: ルールの適用範囲(適用先)が異なるルールは、同じ管理画面に表示されていても独立して評価されます。

対処法
  • 「ルールの管理」で各ルールの「適用先」列を確認
  • 同じセル範囲に対するルールのみ、優先順位で制御できる
  • 適用先が異なる場合は、同じ範囲に統一してからルール順序を調整

Q3. 条件付き書式を一時的に無効にしたい

Excelには条件付き書式を一時的に無効にする標準機能はありません。以下の代替方法があります。

方法1: ルールの管理で一時的に条件を変更

  • 条件式を =FALSE に変更すると、常に条件を満たさなくなる

方法2: VBAで一括ON/OFFを制御

Sub ToggleFormatConditions(enable As Boolean)
    Dim fc As FormatCondition
    For Each fc In ActiveSheet.UsedRange.FormatConditions
        fc.StopIfTrue = Not enable
    Next fc
End Sub

方法3: 印刷時のみ無効にしたい場合

  • 条件付き書式を削除したコピーシートを作成して印刷する

StopIfTrue設定の効果をデモで確認

StopIfTrueを設定すると書式の競合がどう解消されるか、下のインタラクティブデモで確認できます。

‘ 条件付き書式のStopIfTrueを一括設定するマクロ
Sub StopIfTrue設定()
    Dim ws As Worksheet
    Set ws = ActiveSheet
    Dim fc As FormatCondition
    For Each fc In ws.Range(“B2:B6”).FormatConditions
        fc.StopIfTrue = True
    Next fc
    MsgBox “StopIfTrueを設定しました”
End Sub
下のデモで実行結果を確認できます
📊 成績表.xlsx – Excel
ABC
1 名前点数適用状態
2 田中 95 ✓ >=90 緑
3 鈴木 72 ✓ >=70 黄
4 佐藤 45 ✓ <70 赤
5 山田 88 ✓ >=80 緑
6 高橋 65 ✓ <70 赤
>=90: 緑 >=70: 黄 <70: 赤
準備完了 100%
✅ 5件のセルにStopIfTrueが適用され、書式の競合が解消されました!
☝ StopIfTrue=Trueで最初に一致したルールのみ適用されます

まとめ

Excelの「条件を満たす場合は停止」機能のポイントをまとめます。

項目内容
機能名条件を満たす場合は停止(Stop If True)
場所ホーム → 条件付き書式 → ルールの管理
ショートカットAlt → H → L → R
動作ONにしたルールの条件が満たされると、後続ルールの評価を停止
制限データバー・カラースケール・アイコンセットでは使用不可
VBAFormatCondition.StopIfTrue プロパティ

この機能を使いこなすことで、複数ルールの干渉問題を解決し、条件付き書式をより正確にコントロールできるようになります。

期間限定でChatGPT✖️Googleスプレットシートのコンテンツ配布中!

LINEでExcelを気軽に学べる

しんたろ。
しんたろ。
Excel歴10年以上 → アプリ開発者
Profile
大手メーカーに15年以上勤務。製造部門で海外拠点の立ち上げ支援や、現場責任者として採算管理・納期管理・設備オペレートを経験。 2023年にDX人材育成プログラム第1期生として活動後、現在は製造現場のスケジュール運用を支えるアプリの企画・開発をメインに活動中。工程表示表作成の内製化SaaSを構築し、年間1,300万円のコスト改善を実現。 Excelによる業務改善で年間240時間の残業削減を達成した経験を活かし、ブログやSNSでも情報発信しています。
プロフィールを読む
ABOUT ME
しんたろ。
しんたろ。
Excel歴10年以上 → アプリ開発者
大手メーカーに15年以上勤務。製造部門で海外拠点の立ち上げ支援や、現場責任者として採算管理・納期管理・設備オペレートを経験。 2023年にDX人材育成プログラム第1期生として活動後、現在は製造現場のスケジュール運用を支えるアプリの企画・開発をメインに活動中。工程表示表作成の内製化SaaSを構築し、年間1,300万円のコスト改善を実現。 Excelによる業務改善で年間240時間の残業削減を達成した経験を活かし、ブログやSNSでも情報発信しています。
記事URLをコピーしました