- ベストアンサー
セルの背景色を数えたいのですが
Excel2000で、数値や文字が入っているセルの一部に 「背景色」(塗りつぶし色)をつけております。 この中で、範囲指定をして「特定の背景色セル」だけをCountできるような関数はありますでしょうか? また、マクロでしたらどのようにすれば良いのでしょうか? マクロの知識はほとんどありません。 (↓)のカラーパレットの最下段の2色と同じ色を 個別に指定したいと思っております。 □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ ■ □ □ □ ■ □
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
返事遅れてすいません 一番下にある MsgBox (i) 'メッセージボックスの表示 をcells(y,x)=i とすればOKです x,yはセルのx,y座標をいれます たとえば B3せるの場合x=2,y=3 G10の場合x=7,y=10 をいれればセルに表示できます 普通の座標と違ってx,yの順番が逆になってますので注意してくださいね それから、マクロでセルに書くと元に戻せませんのテストしてから 実際にやってください
その他の回答 (2)
- taka2456
- ベストアンサー率29% (36/122)
関数でやるのはわからないんですが 以下のコードを貼り付ければできると思います 貼り付け方法は「ツール」→「マクロ」→「VisualBasicEditor」 →「挿入」→「標準モジュール」 画面左プロジェクトのところの標準モジュール内にModule1というのが ありますのでそれをダブルクリックします 右の大きなところが白紙になりますのでそこに以下のコードを そのまま貼り付けてください もしも白紙でない場合はそのなかに「sub CELLCOUNT()」というのが ないのを確認してください、もしもあった場合は したのコードの「sub CELLCOUNT()」の「CELLCOUNT」の部分を適当な 名前に変更してください 実行の仕方は、セルの色をカウントしたい領域を選択し 「ツール」→「マクロ」→「マクロ」で「CELLCOUT」を選択し「実行」を クリックすればできます 実行結果はダイアログででます Sub CELLCOUNT() Dim SelectedCell As Variant '選択されたセル Dim i As Integer 'カウンタ i = 0 For Each SelectedCell In Selection If SelectedCell.Interior.ColorIndex = 39 Or SelectedCell.Interior.ColorIndex = 36 Then i = i + 1 End If Next MsgBox (i) 'メッセージボックスの表示 End Sub
お礼
早速、ご回答をしていただきましてとても感謝しております。 taka2456さんに教えていただいた「コード」を貼り付けると検索することが出来ました。 Excel標準のカラーパレットに対応する「ColorIndex」があるのですね。 出来ればあるセルに、検索を求める数値を表示することは可能なのでしょうか?
- nishi6
- ベストアンサー率67% (869/1280)
同様な質問がありました。ご参考に。 色付セルの集計(エクセル) http://www.okweb.ne.jp/kotaeru.php3?q=212717
お礼
マクロではなく、「ユーザー定義関数」でしたね。 勘違いをしておりました。済みません。 ただ、ユーザー定義関数のなかに Module1.Total_Color ~ Module7.Total_Color の関数があります。 この関数を使っても、検索の数値が「0」となってしまいます。 (セルE1)=Module1.Total_Color(A1:C3,D1) カラーパレットに対応するColorIndex A列 B列 C列 D列 1 #36 #35 なし #36 2 なし #35 #36 3 #39 なし #35
補足
早速、ご回答をしていただきましてとても感謝しております。 同じような質問があったのですね。 そしてnishi6さんが、とても詳しく回答なさっていますね。 回答の中にある「コード」を貼り付けたのですが、なぜかマクロに登録されないのです。 丸写しでのコピペでは、ダメなのでしょうか? 良ければご教示お願い申し上げます。
お礼
taka2456さん、再度ご回答をしていただき感謝しております。 早速試したところ、出来ましたよ。 これでデーターの整理が出来ます。 本当にありがとうございました。