Andrew,
Good catch! I was lazy and copied his test document content into his template and didn't get that result. Copying his code into his text document though and the loop appeared.
Instead of removing it, I would change the code as follows:
Code:
Private Sub DoColorChange(SearchColor As Long, ReplaceColor As Long)
Dim oDoc As Document
Dim oRng As Range
Set oDoc = ActiveDocument
Set oRng = oDoc.Range
With oRng.Find
.Highlight = True
.Wrap = wdFindStop
Do While oRng.Find.Execute
If oRng.HighlightColorIndex = SearchColor Then
oRng.HighlightColorIndex = ReplaceColor
End If
oRng.Collapse wdCollapseEnd
If oRng.End = ActiveDocument.Range.End - 1 Then Exit Do
Loop
End With
End Sub
Cyroxote, I didn't think you were making it up. I just didn't see the problem until Andrew pointed it out.