Home » Excel VBA Rangeオブジェクト » 条件付き書式 » VBAで条件付き書式を削除する

VBAで条件付き書式を削除する

対象:Excel2007, Excel2010, Excel2013

「vba 条件付き書式 削除」
といった検索で、このサイト・インストラクターのネタ帳へのアクセスが、時折あることに気が付きました。

VBAを使って、条件付き書式を削除するには、どのようなコードを書けばいいのかを探している方による検索です。

条件付き書式を削除するExcelマクロ

上図のような[条件付き書式ルールの管理]ダイアログの[ルールの削除]ボタンから、条件付き書式は削除できます。
ただし複数の条件付き書式が設定されているような場合に、手作業で条件付き書式を削除するのは結構面倒ですから、マクロで条件付き書式を削除したいというニーズがあるのは、とても納得です。

参考になりそうなマクロをいくつかご紹介しておきます。

[スポンサードリンク]

指定したセルの条件付き書式を削除するサンプルマクロ

以下のようなマクロで、A1:G7セルの条件付き書式を削除できます。
Sub 条件付き書式の削除_指定セル()
 Range("A1", "G7").FormatConditions.Delete
End Sub

上記のマクロで利用しているオブジェクトの階層構造は下図のとおりです。

条件付き書式を削除するExcelマクロ

VBAから条件付き書式を操作するには、FormatConditionsコレクションや、

条件付き書式を削除するExcelマクロ

そのメンバーであるFormatConditionオブジェクトを利用します。

条件付き書式を削除するExcelマクロ

FormatConditionsコレクションは、RangeオブジェクトのFormatConditionsプロパティで取得することができます。

条件付き書式を削除するExcelマクロ

セルに設定されているすべての条件付き書式を表すFormatConditionsコレクションのDeleteメソッドを使うことで、ループ処理なしで削除を行っています。

アクティブシートの全セルの条件付き書式を削除するサンプルマクロ

以下のようなマクロで、アクティブなワークシートのすべてのセルの条件付き書式を削除できます。
Sub 条件付き書式の削除_アクティブシート()
 Cells.FormatConditions.Delete
End Sub

Cellsプロパティを使って、アクティブなワークシートのすべてのセルを表すRangeオブジェクトを取得して、そのFormatConditionsコレクションのDeleteメソッドで削除を行っています。

アクティブブックの全セルの条件付き書式を削除するサンプルマクロ

以下のようなマクロで、アクティブなブックのすべてのセルの条件付き書式を削除できます。

Sub 条件付き書式の削除_アクティブブック()
 Dim ws As Worksheet

 For Each ws In Worksheets
  ws.Cells.FormatConditions.Delete
 Next ws
End Sub

先の、アクティブなワークシート上の条件付き書式を削除するコード、
 Cells.FormatConditions.Delete
を、全ワークシートに対するFor Each~Nextループの中で、全ワークシートに対して
 For Each ws In Worksheets
  ws.Cells.FormatConditions.Delete
実行しています。

最終更新日時:2019-01-14 16:11

[スポンサードリンク]

Home » Excel VBA Rangeオブジェクト » 条件付き書式 » VBAで条件付き書式を削除する

Copyright © インストラクターのネタ帳 All Rights Reserved.

.