• ベストアンサー

vbaにて特定の文字を検索し、置換して、セルの色を変えるには?

エクセルの複数セル内に文章が入っているのですが、その中で「田中」という文字を検索して、見つかれば、「山田」という文字に置換し、セルの色を変えたいのですが、findメソッドやreplaceを使えばなんとなくできそうな感じがするのですが、どうしてもうまくいきません。 どなたかご存知の方がいればご教示ください。 よろしくお願いします。

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

  • ベストアンサー
  • imogasi
  • ベストアンサー率27% (4737/17070)
回答No.3

Findメソッドは見つからなかった場合の処理が、初心者には難しい(でも本には書いてあるから、まねをすればよいのだが、VBAの本も持っていないのでは?) セルを全て総なめにIFで聞いて、置換と色付けをして見ます。 セル数が1万程度ならすぐ終わるでしょう。 Sub test01() Dim cl As Range Dim s As String Dim p As Integer Application.ScreenUpdating = False For Each cl In Selection p = InStr(cl, "山田") If p = 0 Then Else s = Replace(cl, "山田", "大田原") cl.Value = s cl.Interior.ColorIndex = 6 End If Next Application.ScreenUpdating = True End Sub

その他の回答 (2)

  • zap35
  • ベストアンサー率44% (1383/3079)
回答No.2

#01です。先の回答は山田を田中に変えるものでした。 読み替えてください

  • zap35
  • ベストアンサー率44% (1383/3079)
回答No.1

こんな感じではいかが? Sub Macro9() Dim r As Range  Application.ScreenUpdating = False  For Each r In ActiveSheet.Cells.SpecialCells(xlCellTypeConstants, 23)   If IsNumeric(Application.Find("山田", r.Value)) Then    r.Value = Replace(r.Value, "山田", "田中")    r.Interior.ColorIndex = 28   End If  Next r  Application.ScreenUpdating = True End Sub

関連するQ&A