電子書籍の厳選無料作品が豊富!

Sub あ()
For i = 1 To 100

If Cells(i, 1).Value Like "*解約*" Then
Cells(i, 1).Interior.Color = vbRed

Next i
End Sub


A列にA100まで、文章が入っています。
その文章のなかに”解約”という文字の入った文章の入ったセルだけを赤く塗りつぶすマクロ
を作りました。

しかし、本当は、”解約”を”解除”という文字に置き換えるマクロが
作りたいのですが、どうしたらいいのでしょうか?

A 回答 (4件)

こんにちは。



セルに色をつける必要がないなら、ループは不要です。

Sub い()
  ' // A1:A100 セルにある解約を解除に置換します。ループは不要。
  Range(Cells(1, 1), Cells(100, 1)).Replace What:="解約", Replacement:="解除"
End Sub

セルに着色する場合でも、Excel2002 以降限定になりますが、

Sub う()
  ' // A1:A100 セルにある解約を解除に置換し、セル着色
  Application.ReplaceFormat.Interior.Color = vbRed
  Range(Cells(1, 1), Cells(100, 1)) _
  .Replace What:="解約", _
       Replacement:="解除", _
       ReplaceFormat:=True
End Sub

とするとループが不要になります。ご参考まで。
    • good
    • 0

Sub あ()


For i = 1 To 100

If Cells(i, 1).Value Like "*解約*" Then
Cells(i, 1).Interior.Color = vbRed
Cells(i, 1).Value = Replace(Cells(i, 1), "解約", "解除")
↑この行を追加
End If

Next i
で赤く塗りつぶして、"解除"に置き換えます。
End Sub
    • good
    • 0

Sub sample()



For i = 1 To 100

If Cells(i, 1) = "解約" Then
Cells(i, 1) = "解除"
End If

Next i
End Sub

これで一度お試しください.
    • good
    • 0

一番簡単な方法は


メニューの編集ー>置換での処理

プログラムを参考にしたいのであれば、
上記処理をマクロ履歴(ツールーマクローマクロの記録を選択)を
取る設定をして処理をさせ後VBAで確認する。
と違いがわかる。
    • good
    • 0

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