- ベストアンサー
vbaにて特定の文字を検索し、置換して、セルの色を変えるには?
エクセルの複数セル内に文章が入っているのですが、その中で「田中」という文字を検索して、見つかれば、「山田」という文字に置換し、セルの色を変えたいのですが、findメソッドやreplaceを使えばなんとなくできそうな感じがするのですが、どうしてもうまくいきません。 どなたかご存知の方がいればご教示ください。 よろしくお願いします。
- みんなの回答 (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)
#01です。先の回答は山田を田中に変えるものでした。 読み替えてください
- zap35
- ベストアンサー率44% (1383/3079)
こんな感じではいかが? 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