📊 Excel VBA Top100
🎨

RemoveConditionalFormatting

書式設定

選択範囲の条件付き書式をすべて削除します

選択した範囲またはシート全体に設定されているすべての条件付き書式を一括削除するマクロです。複雑な条件付き書式が蓄積してファイルの動作が重くなった場合や、書式をリセットして最初から設定し直したい場合に使用します。Excelの「条件付き書式の管理」ダイアログから一つずつ削除する手間を省き、すべての条件を一度にクリアできます。ファイルサイズの削減や動作速度改善にも効果的です。内部ではRange.FormatConditions.Deleteメソッドで対象範囲の条件付き書式をまとめて削除しています。条件付き書式はセル単位で蓄積されるとファイルの動作を重くする原因になるため、ApplyConditionalFormattingで新しい条件を設定する前の下準備としても有効です。定期的な棚卸し作業に組み込むことで、ファイルの健全性を維持できます。

RemoveConditionalFormatting デモ

📖 使い方

  1. VBAエディタを開く(Alt + F11)
  2. モジュールを挿入(挿入 > モジュール)
  3. 下記VBAコードをコピー&ペースト
  4. ブック上で実行(Alt + F8 でマクロ選択)
💡 実行例: 対象範囲を選択してから RemoveConditionalFormatting を実行します

🎯 活用シーン

  • ✓条件付き書式が大量に設定されてファイルの動作が遅くなったときに、すべてをクリアして必要なものだけ再設定したいとき
  • ✓他者から受け取ったファイルに不要な条件付き書式が多数設定されている場合に、一括削除してクリーンな状態にしたいとき
  • ✓ファイルサイズが大きくなりすぎた原因として条件付き書式の蓄積が考えられる場合に、削除してファイルを軽量化したいとき
  • ✓長年運用されてきたファイルで条件付き書式が乱立し、動作が重くなった際にリセットしたいとき
  • ✓テンプレートを配布する前に、作成中に設定した一時的な条件付き書式をすべて削除してクリーンな状態にしたいとき

💡 実装のヒント

  • ▸削除した条件付き書式は元に戻せません。必要な条件の設定内容をメモするか、実行前にファイルをバックアップしてください。
  • ▸テーブルスタイルに含まれる書式(縞模様など)は条件付き書式とは異なるため、このマクロでは削除されません。
  • ▸シート全体ではなく特定の範囲のみの条件付き書式を削除したい場合は、その範囲を選択してから実行してください。
  • ▸シート全体ではなく特定のテーブルだけ削除したい場合は、Cells全体ではなく該当のListObjectの範囲を指定してください。
  • ▸削除前に既存の条件をメモしておきたい場合は、FormatConditionsをループしてImmediateウィンドウに出力すると確認できます。

💻 VBAコード

' RemoveConditionalFormatting
' -----------------
' Macro Name: RemoveConditionalFormatting
' Description: 選択範囲の条件付き書式をすべて削除します
' Parameters: なし
' Returns: なし
' Usage: 対象範囲を選択してから RemoveConditionalFormatting を実行します
' -----------------

Sub RemoveConditionalFormatting()
    On Error GoTo ErrorHandler

    Dim rng As Range

    If TypeName(Selection) <> "Range" Then
        MsgBox "セル範囲を選択してから実行してください", vbCritical, "エラー"
        Exit Sub
    End If

    Set rng = Selection
    rng.FormatConditions.Delete

    MsgBox "条件付き書式を削除しました", vbInformation, "完了"

    Exit Sub

ErrorHandler:
    MsgBox "エラーが発生しました:" & vbCrLf & Err.Description, vbCritical, "エラー"
End Sub