• ベストアンサー

エクセルVBA 文字の置き換え

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まで、文章が入っています。 その文章のなかに”解約”という文字の入った文章の入ったセルだけを赤く塗りつぶすマクロ を作りました。 しかし、本当は、”解約”を”解除”という文字に置き換えるマクロが 作りたいのですが、どうしたらいいのでしょうか?

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

  • ベストアンサー
  • KenKen_SP
  • ベストアンサー率62% (785/1258)
回答No.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 とするとループが不要になります。ご参考まで。

その他の回答 (3)

  • Ryocchi
  • ベストアンサー率38% (38/98)
回答No.3

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

noname#45467
noname#45467
回答No.2

Sub sample() For i = 1 To 100 If Cells(i, 1) = "解約" Then Cells(i, 1) = "解除" End If Next i End Sub これで一度お試しください.

  • ken_pe66
  • ベストアンサー率20% (53/264)
回答No.1

一番簡単な方法は メニューの編集ー>置換での処理 プログラムを参考にしたいのであれば、 上記処理をマクロ履歴(ツールーマクローマクロの記録を選択)を 取る設定をして処理をさせ後VBAで確認する。 と違いがわかる。

関連するQ&A