- ベストアンサー
エクセルの条件付書式によるセル着色でエラーメッセージを表示したい
- エクセルのチェックボタンをクリックしたときにシート1のセル"C4:G50"内に条件付書式により着色されたセルがあった場合、エラーメッセージを表示したいです。
- 現在のコードでは、直接セルに着色されたものはエラーメッセージを表示するようになっていますが、条件付書式による着色されたものもカウントしてエラーメッセージを表示するようにしたいです。
- 条件付書式による着色されたセルの数をカウントし、カウントが0より大きい場合にエラーメッセージを表示するようにしたいです。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
>条件付書式により着色 残念ながら、条件付き書式で着色されたColorIndexは取得出来ません。 簡単な対応策は、色を判別するのではなく対象セルが条件を満たしているか を判別する事です。条件が小さくて見えませんので勝手に条件を想像しますと E列の入力があってC列の入力がない場合 同様にI列に入力があってG列に入力のないものをカウントします。 C4からC50とG4からG50をチェック対象にします。 Set CheckRange = Range("C4:C50,G4:G50") For Each rng In CheckRange 'このrngにはC列G列が入ってきます。 '基準セルより右に2いったセルに入力があれば(CならばE,GならI) IF rng.Offset(,2).Value <> "" Then '対象セルが未入力なら IF rng.Value = "" Then cnt = cnt +1 End IF End IF End IF 条件が簡単であれば上記のような方法でもいいですが、 条件付き書式の条件を複数使っていると 難易度が格段に上がります。 "条件付き書式 色 カウント"で検索してみて下さい。 かなり面倒くさいです。 発想を変えて、作業列を使うなんてのはどうですか? 例えば R4 = IF(E4<>"",IF(C4="",1,0),0) E列の入力のみならR4を1にする R列を見て、1が一つでもあれば処理を中止する これだと簡単になりますね。
その他の回答 (1)
- mitarashi
- ベストアンサー率59% (574/965)
>条件付書式による着色がカウントし 方法が無いこともないですが、相当面倒です。セルをクリップボードにコピーし、html形式のデータを取り出し、色を表現する部分を取り出すなんてワザがあります。 元ネタはmougですが、既に消えています。 こちらに保管している方がいます。ご参考まで。 https://gist.github.com/honda0510/3088353
お礼
有難うございます。
お礼
有難うございます。大変助かりました。