選択したテキスト(ドキュメント全体ではない)の黄色のハイライトを赤いハイライトに変更したい。このVBAは強調表示された色を変更しますが、選択したテキストで停止しません(選択したテキストの下の強調表示も変更します)。
Sub SwitchHighlightsColor()
Dim r As Range
Set r = ActiveDocument.Range
With r.Find
.Highlight = True
.Forward = True
Do While .Execute(FindText:="", Forward:=True) = True
If r.HighlightColorIndex = wdYellow Then ' Highlight color you want to change
r.HighlightColorIndex = wdRed ' the new Highlight color you want to have
r.Collapse 0
End If
Loop
End With
End Sub
次の変更を試してください。
Sub SwitchHighlightsColor()
Dim r As Range
Set r = Application.Selection.Range
With r.Find
.Highlight = True
Do While .Execute(FindText:="") And r.InRange(Application.Selection.Range)
If r.HighlightColorIndex = wdYellow Then ' Highlight color you want to change
r.HighlightColorIndex = wdRed ' the new Highlight color you want to have
r.Collapse 0
End If
Loop
End With
End Sub
編集:
この代替コードは、単語ごとではなく、文字ごとに機能します。そのため、強調表示された文字を正しい色に変更する必要があります。ただし、一度にすべてを元に戻すのではなく、各文字を個別に元に戻す必要があるため、元に戻すのは困難です。
Sub SwitchHighlightsColorPerLetter()
Dim r As Range
Set r = Application.Selection.Range
With r.Find
.Highlight = True
Do While .Execute(FindText:="") And r.InRange(Application.Selection.Range)
For Each x In r.Characters
If x.HighlightColorIndex = wdYellow Then ' Highlight color you want to change
x.HighlightColorIndex = wdRed ' the new Highlight color you want to have
x.Collapse 0
End If
Next
Loop
End With
End Sub