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

VBAさっぱり者です。
仕事で困ってます。

・range("A1")   の  colorindexが 5だったら 1に変えて塗りなおす。
・range("A1:C5")のうちcolorindexが 5のセルだけ 1に変えて塗りなおす。

教えてパソコン大先生!!

A 回答 (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
    • good
    • 0
この回答へのお礼

なるほど、フォントのときにはそのまんまフォントにすればいいのですか。
参考になります。

ベストアンサはごめんなさい先着順とさせていただきまする。

お礼日時:2011/07/03 16:25

最初は



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
    • good
    • 0
この回答へのお礼

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

お礼日時:2011/07/03 16:23

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
    • good
    • 0
この回答へのお礼

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

お礼日時:2011/07/03 16:22

こんばんは!


先生ではなく、一般のおっさんですが・・・

一例です。
前者は
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
    • good
    • 0

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