- ベストアンサー
【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で対応しようと思いました。 宜しくお願いします。
- みんなの回答 (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で作成した、条件付き書式でも問題なく出来ました。
その他の回答 (1)
- fujillin
- ベストアンサー率61% (1594/2576)
比較的簡単なコードで済むと思いますが、特にどこがわからないのでしょうか? A1~A9の範囲のセルをループするのなら For Each c In Range("A1:A9") など セル値とB1セルの値を比較するのなら If c.Value > Range("B1").Value Then セル内の色を変えるのなら c.Interior.ColorIndex = 6 みたいな感じでできるはずですけど?
お礼
回答ありがとうございました。 VBAを扱ったことが全くなかったもので、非常に簡単な事かも知れませんが質問させていただきました。 自分でも調べてみたのですが、辿り着けませんでした…。 おかげで助かりました。 ありがとうございます。
お礼
回答ありがとうございます。 お陰で上手く塗り潰しができました。 そうですか、kybo様の作成した条件付き書式は2003も対応しましたか…。 なんでだろう? ですが、今回教えて頂いたコードで対応出来ましたので本当に助かりました。 ありがとうございました。