プロが教えるわが家の防犯対策術!

エクセル2000を使用しています。
以前にも似たような質問がありましたが
改めて質問させていただきます。

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

A 回答 (5件)

対象セルの範囲指定をして


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文に置換えれば出来るでしょう。
    • good
    • 0
この回答へのお礼

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

お礼日時:2004/03/15 20:48

昨日回答したbeer55です。


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

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
    • good
    • 0
この回答へのお礼

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

お礼日時:2004/03/15 20:52

> cl.Interior.ColorIndex


これは各セルの「塗りつぶし属性」を表しますね。

ご質問は「文字の色」と私は捉えましたので、
cl.font.ColorIndex
と補足します。
(#1さん、ご回答をパクりました、すんません)

ちなみに、ColorIndexは、標準のパレットのままなら、
赤=3、緑=10、黒=1、青=5です。
    • good
    • 0
この回答へのお礼

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

お礼日時:2004/03/15 20:50

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

この回答への補足

早速読んでいただきありがとうございました。
入力例としては

(1)A社 ○×ペン  1本 \100 (赤色)
(2)B社 △鉛筆   1本 \200 (青)

数字・数式・文字列すべて入力した表になっています。

補足日時:2004/03/14 16:11
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!