|
Findを使う際にSelectionを使ったため、1個目の置換後に
カーソル位置(Selection)が置換した範囲の左側に移り、
そこで次の検索を実行するとまた同じものがヒットして・・・
という感じで無限ループになったのだと思われます。
そこで、SelectionではなくRangeオブジェクトのFindを
使うことで解決できると思います。
Sub コード例()
Dim Rng As Range
'Rngの位置を文書の先頭にRangeにセット
Set Rng = ActiveDocument.Range(0, 0)
With Rng.Find
.ClearFormatting
.Format = True
.Highlight = True
.Text = ""
Do
If Not .Execute Then Exit Do
'テーブル以外だけを対象(テーブル内も置換したいならここのIfは不要)
If Not Rng.Information(wdWithInTable) Then
If Rng.HighlightColorIndex = wdBrightGreen Then
Rng.HighlightColorIndex = wdTurquoise
End If
End If
Loop
End With
End Sub
|
|