• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:シート内セルに条件付着色でエラーメッセージ)

エクセルの条件付書式によるセル着色でエラーメッセージを表示したい

このQ&Aのポイント
  • エクセルのチェックボタンをクリックしたときにシート1のセル"C4:G50"内に条件付書式により着色されたセルがあった場合、エラーメッセージを表示したいです。
  • 現在のコードでは、直接セルに着色されたものはエラーメッセージを表示するようになっていますが、条件付書式による着色されたものもカウントしてエラーメッセージを表示するようにしたいです。
  • 条件付書式による着色されたセルの数をカウントし、カウントが0より大きい場合にエラーメッセージを表示するようにしたいです。

質問者が選んだベストアンサー

  • ベストアンサー
  • nofx35
  • ベストアンサー率82% (14/17)
回答No.1

>条件付書式により着色 残念ながら、条件付き書式で着色された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が一つでもあれば処理を中止する これだと簡単になりますね。

kuma0220
質問者

お礼

有難うございます。大変助かりました。

その他の回答 (1)

  • mitarashi
  • ベストアンサー率59% (574/965)
回答No.2

>条件付書式による着色がカウントし 方法が無いこともないですが、相当面倒です。セルをクリップボードにコピーし、html形式のデータを取り出し、色を表現する部分を取り出すなんてワザがあります。 元ネタはmougですが、既に消えています。 こちらに保管している方がいます。ご参考まで。 https://gist.github.com/honda0510/3088353

kuma0220
質問者

お礼

有難うございます。

関連するQ&A