The easiest fix for the code is to temporarily hide the field codes while the macro is running.
Code:
Sub MarkIndexMacro()
Dim myRange As Range, aFld As Field, sXE As String
ActiveWindow.View.ShowHiddenText = False
Set myRange = ActiveDocument.Range
With myRange.Find
.Font.Color = wdColorRed
Do While .Execute
sXE = Trim(myRange.Text)
ActiveDocument.Indexes.MarkEntry Range:=myRange, Entry:=sXE
myRange.Collapse Direction:=wdCollapseEnd
Loop
End With
ActiveWindow.View.ShowHiddenText = True
End Sub