エクセル実践塾 > エクセル実践塾マンスリー

 

特定の色で塗りつぶされているセルの数を調べる

特定の色で塗りつぶされているセルの数を知りたい特定の色で塗りつぶされているセルの数を、計算式で調べたいCELL関数式によるセルのカウントを、複数の列を対象に実行したいマクロとして記録した書式情報の置換をちゃんと機能させたい

 

特定の色で塗りつぶされているセルの数を知りたいんだけど・・・

エクセル2002からは、データだけではなく、そのセルに設定されている書式情報の検索も行えるようになりました。それを使えば、特定の色で塗りつぶされているセルの数も簡単に調べることができます。

特定の色で塗りつぶされているセルの数を、計算式で調べたいんだけど・・・

書式情報は、計算式で調べることができません。そこで、エクセル2002以降の置換機能を使って、書式情報を検索し、そのセルのロックを解除します。

ロックはセル情報なので、CELL関数でその状態を調べることができます。値が1になるものが、ロックされているセルなので、まずその合計を求めて、そこからロックされていないセルの数を割り出します。

CELL関数式によるセルのカウントを、複数の列を対象に実行したいんだけど・・・

前回紹介したCELL関数式でロックの有無を調べると、それに応じて0か1の計算結果を得られます。複数の列に渡るセルが対象でも、それと同じ数だけCELL関数式を用意すれば、その計算結果からCOUNTIF関数で該当セルの数を求められます。

COUNTIF関数を使うと、特定の範囲で、特定の検索条件に合致するセルだけを数えることができます。

書式情報の置換をマクロとして記録したんだけど、うまく働かないのはなぜ?

もしかすると、前回実行時の置換設定をそのまま使いませんでしたか?

マクロの記録では、実際に行った手順しか記録されません。すなわち、前回実行時の置換設定をそのままマクロ記録した場合は、その置換設定がマクロとして記録されるのではなく、すでに設定されている内容で置換するというマクロが作られてしまいます。

これを防ぐには、「検索と置換」のダイアログボックスで、書式検索と書式置換のそれぞれの内容を、まずクリアしてから設定するようにします。そうすると、その手順も記録されるので、意図したとおりのマクロとなります。