Hi Joey,

To step through every word you can use something like this:
[VBA]
For Each rngWord In ActiveDocument.Words
lHighlightedWords = lHighlightedWords - (rngWord.HighlightColorIndex <> wdNoHighlight)
Next
MsgBox lHighlightedWords & " words are highlighted"[/VBA]

but it would be pretty slow on a document of any size and you'ld probably find it quicker to use Find. Find, however, will count a word more than once if more than one part of it is highlighted so a slight correction is needed:
[VBA]
Selection.HomeKey wdStory
Selection.Find.ClearFormatting
Selection.Find.Highlight = True
With Selection.Find
.Text = ""
.Replacement.Text = ""
.Forward = True
.Wrap = wdFindStop
.Format = True
.MatchCase = False
.MatchWholeWord = False
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
End With
Do While Selection.Find.Execute
lHighlightedWords = lHighlightedWords + Selection.Words.Count
If Save = Selection.Words(1).Start Then _
lHighlightedWords = lHighlightedWords - 1
Save = Selection.Words(Selection.Words.Count).Start
Loop
MsgBox lHighlightedWords & " words are highlighted"[/VBA]