I have noticed this phenomenon and I cannot readily explain it, but you can work around it:
Code:
Dim oRng As Range
Set oRng = ActiveDocument.Range
With oRng.Find
.Font.Bold = True
.Text = Selection.Text
.Forward = True
.Wrap = wdFindStop
.Format = True
Do While .Execute
If oRng.Start = Selection.Start Then
oRng.Text = "<start>" & oRng.Text & "<end>"
Exit Do
End If
Loop
End With
or even shorter
Code:
Dim oRng As Range
Set oRng = ActiveDocument.Range
With oRng.Find
Do While .Execute(FindText:=Selection.Text)
If oRng.Start = Selection.Start Then
oRng.Text = "<start>" & oRng.Text & "<end>"
Exit Do
End If
Loop
End With