• ベストアンサー

【VBA】条件を満たしたセルを塗り潰し

VBAで下記のようにしたいのですが、どのようにすれば良いでしょうか?      A 1    100 2    110 3    120 4    130 5    140 6    150 7    160 8    170 9    180 【条件】この場合、A1:A9の範囲内でB1の値を超える値が入力されているセルを黄色で塗りつぶす ※前提として、B1に150と入力されているとします 上記のようなVBAを作成したいと思っています。 この場合、塗りつぶしの対象となるセルはA7,A8,A9となります。 条件付き書式で対応できるのですが、Excel2007で作成したファイルをExcel2003で開くと条件付き書式が反映しませんでしたので、VBAで対応しようと思いました。 宜しくお願いします。

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

  • ベストアンサー
  • kybo
  • ベストアンサー率53% (349/647)
回答No.2

マクロでする場合以下のようになります。 Sub macro() Dim C As Range For Each C In Range("A1:A9") If C.Value > Range("B1").Value Then C.Interior.ColorIndex = 6 End If Next C End Sub ちなみに、こちらでは、Excel2007で作成した、条件付き書式でも問題なく出来ました。

haneke
質問者

お礼

回答ありがとうございます。 お陰で上手く塗り潰しができました。 そうですか、kybo様の作成した条件付き書式は2003も対応しましたか…。 なんでだろう? ですが、今回教えて頂いたコードで対応出来ましたので本当に助かりました。 ありがとうございました。

その他の回答 (1)

  • fujillin
  • ベストアンサー率61% (1594/2576)
回答No.1

比較的簡単なコードで済むと思いますが、特にどこがわからないのでしょうか? A1~A9の範囲のセルをループするのなら  For Each c In Range("A1:A9") など セル値とB1セルの値を比較するのなら  If c.Value > Range("B1").Value Then セル内の色を変えるのなら  c.Interior.ColorIndex = 6 みたいな感じでできるはずですけど?

haneke
質問者

お礼

回答ありがとうございました。 VBAを扱ったことが全くなかったもので、非常に簡単な事かも知れませんが質問させていただきました。 自分でも調べてみたのですが、辿り着けませんでした…。 おかげで助かりました。 ありがとうございます。

関連するQ&A

専門家に質問してみよう