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

エクセルで、色のついたセルを色ごとに、数えたいのですが
出来るのでしょうか?
どうやればいいのでしょうか?
教えてください。

A 回答 (4件)

#2のご解答に比べるまでもなく、幼稚ですが、短く、印象的にも少しでも判りやすいと思いますので#1の方の示唆されている解答の一例を載せます。


単純化するため、一色でしか色がついていないものとします。白と赤とか。白と赤と黄なら赤と黄のセルの合算セル
数がでます。
Sub Macro2()
For i = 1 To 10
  For j = 1 To 50
  If Cells(i, j).Interior.ColorIndex <>       xlNone Then 'この行は上行の右端に続ける
  k = k + 1
   End If
 Next j
Next i
MsgBox k
End Sub
「10」のところは、右端列がA列=1、B列=2、、J列なら10です。自分のシートに合わせて変えてください。
「50」のところは、最下行の行番号です。自分のシートに合わせて変えてください。
Cells(i,j)の部分はi列、j行のセルの色(コード)(Interior.ColorIndex)が「色なし=xlNone 」かどうかを1つづつ聞き、色なしでなければ、カウンター=kに1を足しています。
終わりに画面にセル数を表示(Msgbox k)しています。
文字の色を問題にするなら、「.Interior.ColorIndex」の
所を「.Font.ColorIndex」に変えてください。
上記を行うには、エクセルの解説書の「マクロの記録」の章を読み、何の操作でも良いから、マクロの記録を行い、ツール-マクロ-マクロ-編集で出てくる中身をそっくり削除し、上記をコピーして貼りつけて
実行してください。
    • good
    • 0
この回答へのお礼

ありがとうございました。
なんとなく理解できそうですので、
エクセルの解説書を読んで
やってみたいと思います。

お礼日時:2002/07/29 08:23

サンプルの自動作成スクリプトを差し上げます。



以下の文章をメモ帳に貼り付けて
ittochan.vbs として保存します。
保存したファイルをダブルクリックしてみてください。
うまくいかなかったら、お知らせください。

---この下から---
Set WshShell = CreateObject("WScript.Shell")
p( "自己責任でね``r(・_・;) ポリポリ" )
dim Exl
set Exl = WScript.CreateObject("Excel.application")
Exl.Visible=True
Exl.Workbooks.add
p( "色を付けます" )
Exl.Range("A1:A20").select
for each i in Exl.Selection
c=Int((44-42+1)* Rnd + 42)
i.Interior.ColorIndex = c
next
Exl.Range("C1:C4").select
c=42
for each i in Exl.Selection
i.Interior.ColorIndex = c
c=c+1
next
Exl.Range("A1").select
p( "マクロを作成します" )
sk("%TMM")
act("マクロ")
sk("Macro1%C")
act("Microsoft Visual Basic")
sk("Dim i,j,c~For Each i In Selection~c=0~For Each j In Range+8+2A1{:}A10+2+9~If j.Interior.ColorIndex+-i.Interior.ColorIndex Then~c+-c{+}1~End If~Next~i.Value+-c~Next%FC")
act("Microsoft Excel")
p( "C1:C4を選択します")
Exl.Range("C1:C4").select
p( "マクロを実行します" )
act("Microsoft Excel")
sk("%TMM")
act("マクロ")
sk("%R")
p( "終了しました" )
sub act(titlename)
for j=0 to 600
WScript.Sleep(100)
if wshShell.AppActivate( titlename ) then
WScript.Sleep(1000)
exit sub
end if
next
WScript.Quit
end sub
sub sk(msg)
wshShell.SendKeys(msg)
end sub
sub p( msg )
if WshShell.Popup( msg ,,"~( ̄∇ ̄~)(~ ̄∇ ̄)~",52 ) = 7 then
WScript.Quit
end if
end sub
---この上まで---
    • good
    • 0
この回答へのお礼

ありがとうございました。
遅くなりましたが、今やってみましたら、
ノートンアンチウィルスが、作動しましたので、
途中でストップしましたが・・・大丈夫ですよね?

お礼日時:2002/07/29 08:19

同様な質問がありました。

ご参考に。

色付セルの集計(エクセル)
http://www.okweb.ne.jp/kotaeru.php3?q=212717

参考URL:http://www.okweb.ne.jp/kotaeru.php3?q=212717
    • good
    • 0
この回答へのお礼

ありがとうございました。
難しそうですが、やってみます。

お礼日時:2002/07/25 19:42

VBマクロで


各セルの
Interior.ColorIndexの値を参照してはどうでしょうか。

それともWSHのVBScriptでスクリプトを作成するとかは
どうでしょうか。
    • good
    • 0
この回答へのお礼

ありがとうございました。
でも、初心者の私には難しすぎて、書かれていることが全然理解できません。

お礼日時:2002/07/25 19:43

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