• ベストアンサー

エクセル2012でセル内の背景色をカウントしたい。

ウィンドウズ7でエクセル2012を使用しています。一定の範囲内の背景色(3色)使用しているセルの 数をカウントしたい。背景色の番号を求め、その背景色番号をVBA等でカウントする方法になるかとは思いますが、いろいろと調べて挑戦したのですがカウントできませんでした。VBAについては無知なので、申し訳ありませんがわかりやすくエクセル2012で作成するVBA等の方法を教えてください。

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

  • ベストアンサー
  • okormazd
  • ベストアンサー率50% (1224/2412)
回答No.2

#1です。 ちょっと変えたが前のと同じです。 Function cntcol(selrang As Range, testcol As Range) As Integer Dim cntcol As Integer cntcol = 0 For Each c In selrang If c.Interior.Color = testcol.Interior.Color Then cntcol = cntcol + 1 End If Next End Function 1. これを数を数えたいBOOKの標準モジュールに貼ります。 2. 数を数えたいシートの何も書いてない適当なセルを選択します。ここに数が表示されます。 3. メニュー「数式」―リボン「関数の挿入」―「関数の挿入」ダイアログの「関数の分類」で「ユーザー定義」選択―「関数名」で、「cntcol」選択―「OK」ー「関数の引数」ダイアログで「selrang」に数えたいセル範囲選択―「testcol」に数えたい色のセルを1つ選択ー「OK」 4. セルに数が表示されるはずです。 これでダメならあきらめましょう。 何色がいくつというような動作も簡単だから考えたらいいでしょう。 あなたの思うような動作にはならないでしょうが、質問が漠然としているので仕方がないでしょう。

その他の回答 (1)

  • okormazd
  • ベストアンサー率50% (1224/2412)
回答No.1

色の指定の仕方もいろいろあって、1600万色もある色のうちから何色が何個あるなんて、一般的に数えるようなのは面倒。で、指定した色のインデックスを数えるようにした関数をつくったので、試してみる。 指定したセルの色のインデックスと同じ、選択範囲にある色インデックスのの数を返すようにした。インデックスだから、56色まで。 これを、標準モジュールに貼って、ユーザー関数として使えばいい。 Function cntcol(selrang As Range, testcol As Range) As Integer For Each c In selrang If c.Interior.colorindex = testcol.Interior.colorindex Then i = i + 1 End If Next cntcol = i End Function 「colorindex」を「color」に変えれば1600万色に対応するとおもう。 これを参考に、subを作ればいいでしょう。 「VBAについては無知」ということなので、これくらいのこと(ユーザー関数の使い方とか)でどうやっていいかわからないということなら、あきらめましょう。

shota0403
質問者

お礼

早速の回答ありがとうございました。せっかく教えていただいて申し訳ありませんせんが、 標準モジュールに張り付けてもセルの背景色をカウントできませんでした。 申し訳ありませんがあきらめる事が出来ないので、もう少しわかりやすく教えていただけませんか。

shota0403
質問者

補足

せっかく教えていただいて申し訳ありませんが、標準モジュールに張り付けても やはりセルの背景色をカウントできませんでした。 申し訳ありませんがあきらめる事ができないので、もう少しわかりやすく 教えていただけませんでしょうか。

関連するQ&A

  • エクセル データを集計する関数(太字・色背景のセルをカウント)

    エクセルで作成した表の中から、太字表記で背景に色がついたデータ(セル)の数をカウントする事って可能でしょうか?可能なら、是非関数を教えて頂きたいです。因みにOffice 2000を使用しております。 出来れば、 1. 太字表記したセル 2. 背景に色がついたセル 3. 太字表記で且つ背景に色がついたセル  の3つのパターンを教えて頂けると非常に助かります。 よろしくお願いします。

  • エクセルで網掛けのセルだけカウント

    エクセルで指定範囲内の網掛けされたセルの数をカウントしたいのですが、どうすればいいのでしょうか?

  • EXCELのセルに入力した数字より背景色の塗りつぶしを行いたいのですが

    EXCELのセルに入力した数字より背景色の塗りつぶしを行いたいのですがどうすればよいのでしょうか? 閲覧ありがとうございます。 今仕事の資料を作成しています。 かなりの初心者ですので、宜しくお願いします。 使用ソフトのバージョンは EXCEL 2003 SP3になります。 現在表を作成しており、行に数字を入れ、数字にあわせ背景色をつけたいと考えています。 ※列で数値をCountifにより集計し、1がいくつ、2がいくつ・・・・とカウントしています。 セルには1~15の数字を入れ、それぞれ数字に合わせ自動で背景色を塗りつぶすことを行いたいと考えています。 書式の条件付書式により色をつけることを考えましたが、3つの条件までしか作ることが出来ずに困っています。 おそらくVBAやマクロ等を使用しないといけないと思いますが、可能なのでしょうか? プログラミングの知識が無いので、ぜひご教授のほどよろしくお願いします。

  • エクセルである指定した範囲のカウント

    エクセルで通常カウントは、以下のように、B2:B5と範囲指定しますが、 COUNTIF(B2:B5,">55") ある一定のセルをカウントしようとしたのですが、うまくいきません・・・。 たとえば、E8,G8I8をカウントの対象としたいとき、書式はどのようにすればいいでしょうか? やりたいことは、上記のように、そろってない範囲のセルで、17以上はいくつか?など、ある数値以上になっているセルの数をカウントすることです。

  • エクセルで網掛けをしたセルをカウントしたいのですが。

    エクセルで,カレンダーを作成しています。 1 12ヶ月の月曜日(他の曜日も)の中で,勤務日が何日あるかカウントしたいのですが,うまくいきません。そこで,網掛け(または色つけ)したセルの数をカウントしたいのですが,どんな方法がありますか? 2 また,このような目的で,他にいい方法があったら教えてください。

  • エクセルでセルをカウントしたい!

    エクセルを使ってある言葉が出てくるセルの数をカウントしたいと 思っています。 たとえば一つのセル、 Aの1に「言葉の数を数えます。」 と文字がはいっていたとして、 これを=COUNTIF(A1:A1,"*数*")とすれば、 出てきた個数ではなく、セルの数として 「1」と返ってくると思います。 これを応用して、 Aの1に「数」と入力されていて、 Bの1に「言葉の数を数えます。」が入っていて、 =COUNTIF(B1:B1,"*数*")で数えるのではなく、 =COUNTIF(B1:B1,"*A1*")としてAの1の文字を 認識させてセルの数をカウントしたいんです。 しかしこれではエラーがでるし、 だからといって =COUNTIF(B1:B1,A1)では0になってしまいます。 どのようにすればA1の文字を参照させセルの数を カウントすることができるでしょうか?

  • エクセルのセル内の数字をカウントしたい・・

    エクセルのカウントについて教えて下さい。 「5,6,7」や「10,11,15,20」などのように書かれたセルがあります。 カンマで区切られた数字の個数を自動的に数え別のセルにその結果を書き出したいのですが、 エクセルの数式だけでできますか? できればVBAは使いたくないと思います。 例:「5,6,7」なら"3" 、 「10,11,15,20」なら"4"と言う感じです。 よろしくお願いいたします。

  • エクセルの特定のセルだけを1/3としてカウントする

    エクセルのcountifを使って計算式を作成したいのですが,特定のセルだけを1単位あたりの1/3としてカウントし表記したいのですが…具体的には45分を1カウントで15分を1/3とカウントしたいのですが,何か方法がありますか?教えてくださいおねがいします。

  • Excel/指定のセル間の空白をカウント

    Excelの関数についての質問です。 ある範囲内で”指定の値のセル(1)”と”指定の値のセル(2)”を検索しその間の”空白セル”の数をカウントしたいんですが、方法はありますでしょうか。 例えば、「範囲:A1~Z1」、「指定値を含むセル:C1((1))、W1((2))」の間で空白のセルのカウントをする場合です。※範囲の間のセルには空白セルと文字入力されたセルがある前提です。 以下の様にMATCH関数を使用すれば、全てのセルの数をカウントできるのですが、それでは、空白 のセルだけという条件に当てはまらず、目的を達成出来ません。 ■MATCH((2),A1:Z1,0)-MATCH((1),A1:Z1,0)=20 何か良い方法はありますでしょうか?

  • エクセルでセル内の文字をカウントしたい

    エクセルでセル内の文字をカウントしたいです。 例えば A| B| 1|1,2| 2|1,3| 3|2,3| 4|2 | 5|3 | というエクセルでB列の1の数、2の数、3の数をカウントしたいです。 B列の中には数字と数字の間は,が入っています。 困っています!よろしくお願いします!

専門家に質問してみよう