• ベストアンサー

エクセルで、色のついた文字をカウントする

エクセル2000を使用しています。 以前にも似たような質問がありましたが 改めて質問させていただきます。 エクセル2000で会社の売上表を作成しており、 その中のデーターの中には商品の状態に より、赤、緑、黒、青と色で区分をわけています。 そのデーターの中で各色で入力されたもの で、空白は除くデータの数を数えたいのです。 VBAでいろいろためしてはみたのですが、なかなかうまくいきません。すみませんが宜しくお願い致します。

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

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

対象セルの範囲指定をして Sub test01() Dim cl As Range t = 0 For Each cl In Selection If (cl.Interior.ColorIndex <> -4142) _ And (cl.Value <> 0) Then t = t + cl.Value End If Next MsgBox t End Sub を実行する。少数例でテスト済み。 色は無色以外は、これとこれに限るという限定をしていませんが、限定するならIF文をCASE文に置換えれば出来るでしょう。

ciscotmge
質問者

お礼

ご回答いただきありがとうございました。 早速ためさせていただきました。 フォントの色での区別でしたので一部を変更 しましたが、実行できました。 ありがとうございました。

その他の回答 (4)

  • beer55
  • ベストアンサー率33% (7/21)
回答No.5

昨日回答したbeer55です。 もしかして色文字ですか? 色文字の場合は、63ではなく24です。 =GET.CELL(24,Sheet1!B9)+NOW()*0 確認してください。

  • beer55
  • ベストアンサー率33% (7/21)
回答No.4

B1商品名 B2~B20に実際の商品名 C1数量 C2~C20に実際の数量が記載されているとします。 商品には赤、緑、黒、青の色とします。 1.B2セルを選択し「挿入」→「名前」→「定義」を選択 2.「名前」欄に「色番号」と入力 「参照範囲」に「=GET.CELL(63,Sheet1!B2)+NOW()*0」と入力 3.D2に「=色番号」と入力 4.D2以降コピー 色番号が表示されます。 5.=SUMIF("範囲","検索条件","合計範囲")関数で集計 範囲はD2~D20、 検索条件は色番号(赤なら3) 合計範囲は、C2~C20 詳しくは下記のURLを参考にしてください。

参考URL:
http://www.moreexcellent.com/excel/tips/color.htm
ciscotmge
質問者

お礼

ご回答いただきありがとうございました。 大変参考になりました。 VBA以外でも方法があるんだなと思いました。 教えていただいたやりかたでも試してみたいと 思います。

noname#240783
noname#240783
回答No.3

> cl.Interior.ColorIndex これは各セルの「塗りつぶし属性」を表しますね。 ご質問は「文字の色」と私は捉えましたので、 cl.font.ColorIndex と補足します。 (#1さん、ご回答をパクりました、すんません) ちなみに、ColorIndexは、標準のパレットのままなら、 赤=3、緑=10、黒=1、青=5です。

ciscotmge
質問者

お礼

ご回答いただきありがとうございました。 皆さんのご回答を参考に解決できました。

  • kairinkou
  • ベストアンサー率29% (5/17)
回答No.2

各セルには、どのようなもの(数字?文字列?数式?)が入力されていますか?簡単に、具体的に書いてもらえませんか?

ciscotmge
質問者

補足

早速読んでいただきありがとうございました。 入力例としては (1)A社 ○×ペン  1本 \100 (赤色) (2)B社 △鉛筆   1本 \200 (青) 数字・数式・文字列すべて入力した表になっています。

関連するQ&A