【ExcelVBA】条件付き書式が設定されているセルを特定する方法

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

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

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


マクロを実行すると、条件付き書式が設定されているセルを特定してそのセルが選択状態になっています。

マクロ作成の流れ

STEP.1
Rangeオブジェクトに条件付き書式が設定されているか知りたいセルを設定し、SpecialCellsメソッドに定数「xlCellTypeAllFormatConditions」を設定して実行する
Rangeオブジェクトに条件付き書式が設定されているか知りたいセルを設定し、SpecialCellsメソッドに定数「xlCellTypeAllFormatConditions」を設定して実行します。
定数「xlCellTypeAllFormatConditions」は条件付き書式のセルを特定する定数です。

Excelファイルの例

今回用意したExcelファイルは次の通りです。

以上のExcelファイルには、セルC2からC11まで条件付き書式が設定されています。

今回設定した条件付き書式の設定内容は下の画像の通りです。

さらに条件付き書式の設定内容を見てみると、次の画像の通りとなっています。

条件付き書式の設定は以上の画像の通りとなっています。

今回ご紹介するマクロは、この条件付き書式が設定されているセルをマクロが特定します。

今回用意したExcelファイルに対してマクロを実行すると下のように条件付き書式が設定されているセルを選択状態にします。

セルC2からC11まで条件付き書式が設定されているので、セルC2からC11が選択された状態になっています。

コードの例

Excelのマクロのコード(例)

Option Explicit

Sub test()

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

注目すべきコード①

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

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

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

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

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

セルC2からセルC11に設定しているのはあくまで例なので、確認したいセルをお好みに設定してしてみてくださいね。

注目すべきコード①

最初に見て頂きたいのは12行目から22行目です。

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

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

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

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

17行目では、条件付き書式が設定されているセルに対してselectメソッドを実行しセルを選択状態にします。

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

動作確認

マクロを実行した実行結果は、本記事内のExcelファイルの例の内容をご覧ください。

最後に

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

条件付き書式が設定されているセルってぱっと見どのセルなのかが分かりにくいですよね。

本マクロを参考にすれば条件付き書式が設定されているセルを特定しやすいと思うので、是非活用してみてくださいね。

Excelのスキル向上やExcelの基礎知識をしっかりと学びたいなら

Excelのスキルを習得したい、Excelの基礎知識をもっと理解したい、そう考えているなら「無期限サポート付きExcel講座【すごい改善】」がおすすめです。

Excelのスキルの基礎を身につけるなら【すごい改善】で無期限サポート付きがあるので、これで「Excelのスキルや基礎」を学ぶのにおすすめですよ。

→ 受講後、何度でも無期限でメールで質問できるアフターサポートがついているExcelマスター講座はこちら