• ベストアンサー

VBA 特定の色がついたセルを数える…

VBA初心者です。 特定の色がついているセルを数えるプログラムが組めなくて困っています。 たとえば Dim a as Integer a=Range(Cell(1,1),Cell(1,12))の間にあるセルが緑色の個数 このようにしたいのです。 できるだけFor文など一つ一つカウントしていくようなプログラムは避けたいです。 Countプロパティが鍵かなとは思ったのですが、思うように組めません。 なにかいい構文などはないでしょうか?

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

  • ベストアンサー
  • marbin
  • ベストアンサー率27% (636/2290)
回答No.1

VBAでループ以外の方法があるかは分かりません。 参考まで。 色のついたセルをカウント・集計 http://miyahorinn.fc2web.com/faq/faq030.html

arukuchibu
質問者

お礼

色のついたセルを正規の方法でカウントすることはできないんですね…。 教えてくださったURL,とてもためになりました。 どうもありがとうございました!

その他の回答 (1)

  • sineminna
  • ベストアンサー率31% (118/370)
回答No.2

自分も未熟なんでひとつひとつカウントする方法しか思いつきませんが・・・ For Each c In Range("A1:J20") If c.Interior.ColorIndex = 6 Then a = a + 1 End If Next MsgBox (a) あるいは関数で Function CountColor(計算範囲, 条件色セル) CountColor = 0 For y = 1 To 計算範囲.Columns.Count For x = 1 To 計算範囲.Rows.Count If 計算範囲.Rows(x).Columns(y).Interior.ColorIndex = 条件色セル.Interior.ColorIndex Then CountColor = CountColor + 1 End If Next Next End Function

arukuchibu
質問者

お礼

やはりループしかなさそうですね。 For each文は使えそうですね。 とても参考になりました。ありがとうございました!

関連するQ&A

専門家に質問してみよう