• ベストアンサー

エクセル VBA 色を変える

VBAさっぱり者です。 仕事で困ってます。 ・range("A1")   の  colorindexが 5だったら 1に変えて塗りなおす。 ・range("A1:C5")のうちcolorindexが 5のセルだけ 1に変えて塗りなおす。 教えてパソコン大先生!!

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

  • ベストアンサー
  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.2

No.1です! たびたびごめんなさい。 前回の投稿で間違いがありました。 後者のコードが違います。 Sub test2() Dim i, j As Long For j = 1 To 3 For i = 1 To 5 If Cells(i, j).Interior.ColorIndex = 5 Then Cells(i, j).Interior.ColorIndex = 1 End If Next i Next j End Sub に訂正してみてください。 何度も失礼しました。m(_ _)m

mogurayama
質問者

お礼

返事おそくなってごめんなさい。 有難う御座います!! なるほど、そのように使えばいいのですね。 勉強になりました。

その他の回答 (3)

  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.4

回答No3です。もしかしてセルを塗りつぶすのではなくフォントの色を変えるのでしたら次のようにします。 最初は If Range("A1").Font.ColorIndex = 5 Then Range("A1").Font.ColorIndex = 1 End If 次は For ColnP = 1 To 3 For RowP = 1 To 5 If Cells(RowP, ColnP).Font.ColorIndex = 5 Then Cells(RowP, ColnP).Font.ColorIndex = 1 End If Next RowP Next ColnP

mogurayama
質問者

お礼

なるほど、フォントのときにはそのまんまフォントにすればいいのですか。 参考になります。 ベストアンサはごめんなさい先着順とさせていただきまする。

  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.3

最初は If Range("A1").Interior.ColorIndex = 5 Then Range("A1").Interior.ColorIndex = 1 End If 次は For ColnP = 1 To 3 For RowP = 1 To 5 If Cells(RowP, ColnP).Interior.ColorIndex = 5 Then Cells(RowP, ColnP).Interior.ColorIndex = 1 End If Next RowP Next ColnP

mogurayama
質問者

お礼

すばやい回答有難う御座います。 本当にみなさん直にこうやってプログラムが書けるんですね。 すごい。

  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.1

こんばんは! 先生ではなく、一般のおっさんですが・・・ 一例です。 前者は Sub test1() If Range("A1").Interior.ColorIndex = 5 Then Range("A1").Interior.ColorIndex = 1 End If End Sub 後者は Sub test2() Dim i As Long For i = 1 To 5 If Range("A" & i).Interior.ColorIndex = 5 Then Range("A" & i).Interior.ColorIndex = 1 End If Next i End Sub こんな感じではどうでしょうか?m(_ _)m

関連するQ&A