• ベストアンサー

EXCEL2003で塗りつぶしたセルを計算する方法を教えてください。

EXCEL2003を使用しております。 簡単な表を作って使用しているのですが、塗りつぶしたセルだけを カウントする方法はあるのでしょうか? 例えば、『明るい緑』に塗りつぶしたセルの数の合計だけを数えたいのですが。 出来るとした場合 ・セルに文字(文章)が入っていても大丈夫ですか? ・塗りつぶす色が2色あるとして、緑のセルがいくつ、青のセルがいくつと数えることが出来るでしょうか?(青と緑との合計も)

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

  • ベストアンサー
noname#79209
noname#79209
回答No.4

直接の回答ではありませんが... 塗りつぶしを手作業で行っているようですが、何かしら塗りつぶす条件があるなら、 その条件データを使ってカウントできるのでは? また、できるだけそのように表を作成することをお勧めします。

その他の回答 (3)

  • imogasi
  • ベストアンサー率27% (4737/17070)
回答No.3

この問題は時どき質問がありますが、2003まではストレートにはできません。エクセル2007では実現できるようです。 エクセルは目的実現の手段として (1)操作 (2)ウイザード・アドイン (3)関数 (4)VBA などで適当なものを使います。普通の方は(3)をイメージしているようですが、関数はセルの「値」しか採ったり、計算して、値としてセットしかできません。書式はとれず、セットもできません。 しかし ーー 色づけの元ルールが、数量的な基準であれば(部長の総合的判断のようなタイプのものでなければ)その計量的な基準に戻ってそれで、関数で該当数を求められる場合があります。 (例 点数50-70の件数など) ーー (3)と(4)の橋渡しのような、ユーザー関数定義があるので セルの色コードをVBで捉えてコードで返してもらうようにすれば 関数の対象になります(COUNTIFなど) (4)VBAでやるなら、上記2つのどちらの方式もプログラムコード化可能です。

回答No.2

手動での作業となってしまいますが、以下の手順ではいかがでしょうか? 編集→検索→「オプション」ボタン→「書式」ボタン→「パターン」タブで 数えたい色を選択(「明るい緑」)→「OK」ボタン→「すべて検索」ボタン 検索ダイアログボックスの一番下に○セルが見つかりました。 と、該当するセルの個数が表示されます。 ちなみに「検索ダイアログボックス」はCtrlキーを押しながらFキーでも 呼び出せるので、このショートカットを使えば多少は楽になるかと思います。

  • zap35
  • ベストアンサー率44% (1383/3079)
回答No.1

ユーザ定義関数にします 以下のマクロをALT+F11でVBE画面を開き、左上のVBA Projectでシート名を右クリックし「挿入」→「標準モジュール」で表示される画面に貼り付けて下さい。 ワークシート画面に戻り =cntCLR(カウントする範囲,数えたい色のセル) という式を入力します(例 =cntCLR(B1:E10,A1) ) 『明るい緑』を数えたいなら上の例ではA1の背景色を『明るい緑』にしておきます。数えたい範囲に文字があっても構いません。 >緑のセルがいくつ、青のセル ならこの式を二つのセルに入力します。青と緑の合計は二つの結果を足せばよいでしょう Function cntCLR(ByVal rng As Range, trg As Range) Dim r As Range For Each r In rng If r.Interior.ColorIndex = trg.Interior.ColorIndex Then cntCLR = cntCLR + 1 End If Next r End Function ただしこのユーザ関数は式を入力した後でセルの背景色を変更しても自動では結果が更新されません。更新するにはAlt+Ctrl+F9で強制再計算してやる必要があります

関連するQ&A