Unless it is a state secret, it would help to see your code. From reading the dialog above, it sounds like you are searching for terms and marking them as index entries. As you do then each entry is also marked and on and on and on.
What you need to do is move the start of the search range after the newly created index entry. Index enteries are fields and a field doesn't have a range. However, its code does so ...
I type the words "Test, test, test" and run this code:
Sub ScratchMacro()
'A quick macro scratch pad created by Greg Maxey
Dim oRng As Word.Range
Dim oFld As Field
Set oRng = ActiveDocument.Range
With oRng.Find
.Text = "Test"
While .Execute
Set oFld = ActiveDocument.Indexes.MarkEntry(Range:=oRng, Entry:=oRng.Text, _
EntryAutoText:=oRng.Text, CrossReference:="", CrossReferenceAutoText:="", _
BookmarkName:="", Bold:=False, Italic:=False)
oRng.Start = oFld.Code.End + 1
Wend
End With
lbl_Exit:
Exit Sub
End Sub