【ExcelVBA】セルに設定されている条件付き書式をクリアするには

この記事では、セルに設定されている条件付き書式をクリアする方法についてご説明します。

【動画】セルに設定されている条件付き書式をクリアする実際の動き

本題に入る前に、まずは次の動画をご覧ください。


マクロを実行すると、条件付き書式が設定されているセルを特定し、そのセルの条件付き書式を削除します。

マクロ作成の流れ

STEP.1
Rangeオブジェクトに条件付き書式が設定されているか知りたいセルを設定し、SpecialCellsメソッドに定数「xlCellTypeAllFormatConditions」を設定して実行する
Rangeオブジェクトに条件付き書式が設定されているか知りたいセルを設定し、SpecialCellsメソッドに定数「xlCellTypeAllFormatConditions」を設定して実行します。
STEP.2
RangeオブジェクトのFormatConditionsコレクションのDeleteメソッドを実行して条件付き書式を削除する
RangeオブジェクトのFormatConditionsコレクションのDeleteメソッドを実行して条件付き書式を削除します。

Excelファイルの例

今回は次のExcelファイルを用意しました。

表のD列には、いくつかオレンジ色で色付けされているセルがあります。

このオレンジ色のセルは、条件付き書式で色付けされています。

条件式書式の内容は下の通りです。

セルの値が5の場合は、オレンジ色に色付けする、という条件が設定されています。

この条件式設定をマクロがクリアすると次の通りになります。

条件付き書式がクリアされてセルが色付けされなくなりました。

コードの例

Option Explicit

Sub test()

    Dim rng         As Range        'Rangeオブジェクト格納用変数
            
    '条件付き書式が設定されているセルの範囲を取得する
    Set rng = Worksheets("work").Range("D3:D12").SpecialCells(xlCellTypeAllFormatConditions)
    
    If Not (rng Is Nothing) Then
        
        '条件付き書式が設定されているセルが存在している場合
                
        '条件付き書式を削除する
        rng.FormatConditions.Delete
        
        'rngを解放する
        Set rng = Nothing
    
    End If
    
End Sub

注目すべきコード①

最初に見て頂きたいのは8行目です。

    '条件付き書式が設定されているセルの範囲を取得する
    Set rng = Worksheets("work").Range("D3:D12").SpecialCells(xlCellTypeAllFormatConditions)

コードの説明

以上のコードは、条件付き書式が設定されているセルの範囲を取得する処理のコードです。

Rangeオブジェクトに条件付き書式が設定されているか知りたいセル(セルD3からセルD12)を設定し、SpecialCellsメソッドに定数「xlCellTypeAllFormatConditions」を設定して実行しています。

実行後は変数rngがSpecialCellsの実行結果を受け取ります。

補足

セルD3からセルD12に設定しているのはあくまで例なので、条件付き書式をクリアしたいセルをお好みに設定してしてみてくださいね。

注目すべきコード②

次に見て頂きたいのは10行目から20行目です。

    If Not (rng Is Nothing) Then
        
        '条件付き書式が設定されているセルが存在している場合
                
        '条件付き書式を削除する
        rng.FormatConditions.Delete
        
        'rngを解放する
        Set rng = Nothing
    
    End If

コードの説明

以上のコードは、条件付き書式が設定されているセルが存在しているかを判定し、存在していたらセルから条件付き書式を削除にするコードです。

コードの詳細

10行目で条件付き書式が設定されているセルが存在しているかを判定しているのですが、もし存在していない場合は変数rngに返すものが無いので変数rngはNothingのままです。

もし存在している場合は変数rngはNothingではないので、15行目の処理に遷移します。

15行目では、条件付き書式が設定されているセルに対してFormatConditionsコレクションのDeleteメソッドを実行しセルから条件付き書式を削除します。

18行目では、変数rngはもう使わないので解放しています。

動作確認

今回は以下のExcelファイルを用意しました。

このExcelファイルには以下の条件付き書式が設定されています。

セルD3からD12に対して、セルの値が5の場合にセルに黄色の色付けをするという条件付き書式が設定されています。

マクロ実行後

マクロを実行すると下の通りに表示されます。

条件付き書式がクリアされてセルが色付けされなくなりました。

条件付き書式ルールの管理を開くと、設定が削除されています。

最後に

この記事では、セルに設定されている条件付き書式をクリアする方法についてご説明しました。

セルに設定されている条件付き書式をマクロでクリアしたい時は本記事を参考にしてみてくださいね。

プログラミングのスキルを習得するなら

プログラミングのスキルを習得したい、今のスキルをもっと高めたい、そう考えているなら「プログラミングスクール」がおすすめです。

プログラミングのスキルの基礎を身につけるなら「TechAcademy」で1週間の無料体験があるので、これで「プログラミングの基礎」を学ぶのにおすすめですよ。

→ TechAcademyの「1週間 無料体験」はこちら