Eu consegui realizá-lo, ainda que com um pouco de clareza:
Sub underline_Index_Definitions()
Dim myDoc As Word.Document
Dim rngDoc As Word.Range
Dim rngXE As Word.Range
Dim numParas&
Dim bFound As Boolean
Dim rng As Word.Range
Set myDoc = ActiveDocument
Set rngDoc = myDoc.Content
Set rngXE = rngDoc.Duplicate
bFound = True
Debug.Print "You have : " & myDoc.Sections.Count & " sections."
With rngDoc.Find
.ClearFormatting
.ClearAllFuzzyOptions
.Text = "- means"
.Format = False
.Wrap = wdFindStop
End With
Do While bFound
bFound = rngDoc.Find.Execute
If bFound Then
Set rngXE = rngDoc.Duplicate
rngXE.Select
If rngXE.Information(wdActiveEndSectionNumber) = myDoc.Sections.Count - 1 Then
'Found definition in the index
Set rngXE = rngXE.Paragraphs(1).Range
rngXE.Select
'Now, starting with the first character, go until the - and underline
Dim startC&, endC&, x&
x = 0
Do Until rngXE.Characters(x + 1) = "-"
Debug.Print rngXE.Characters(x + 1)
If (x + 1) > rngXE.Characters.Count Then Exit Do
x = x + 1
Loop
Set rngXE = myDoc.Range(Start:=rngXE.Characters(1).Start, End:=rngXE.Characters(x).End)
rngXE.Select
rngXE.Font.Underline = wdUnderlineSingle
End If
End If 'bFound
Loop
End Sub
Basicamente, sei que meu índice é uma nova seção, no final do documento. Então, eu só tenho a macro procurando -
em todo o documento, mas somente quando ela alcança o índice (determinado pelo Activedocument.sections.count - 1
), faz um loop em cada parágrafo e pega texto na frente do -
.
Se alguém tiver alguma dica / idéia, por favor, deixe-me saber como eu ainda estou aprendendo o Word VBA (talvez obviamente)