Я строю индекс в документе Word, который будет определений. Мой индекс будет выглядеть так:
Супергерой - тот, кто супер существо ..... 17
Автобус - это длинный автомобиль, похожий на сосиску ..... 28
Кошка - это маленькое животное ......... 17
так далее...
В моем документе текст выглядит так:
И еще есть Супергерой - кто-то, кто является супер существом.
С подчеркиванием "Супергероя" (не смог найти, как подчеркнуть, поэтому я выделил СЦ).
Есть ли способ сохранить это подчеркивание при добавлении его в индекс? В качестве альтернативы, есть ли способ с помощью VBA сканировать мой индекс и подчеркивать текст в каждой строке, которая идет перед -
?
Изменить: большая идея заключается в том, что у меня есть 120 страниц документа, который меняется довольно часто. У меня есть макрос, который может сканировать документ в поисках определений (определяется как «[что-то] - значит»). Затем он добавляет эти определения в указатель, но удаляет подчеркивание, существующее в документе. Я хотел бы добавить его обратно в индекс.
Возможно, я смогу отсканировать все определения, как это делается при добавлении в индекс, и проверить, находится ли определение в последнем разделе моего документа? Как бы я сделал это в VBA, как что-то вроде If selection.section = activedocument.sections.count Then
, кроме как вы не можете сделать .Section
чтобы увидеть, какой номер раздела я в.\
Вот некоторый код, который у меня есть. Я понял, что мой Индекс работает на ОДНО РАЗДЕЛЕ, чем activedocument.sections.count
, несмотря на то, что это последний раздел. В любом случае, это работает, и я могу перейти к своему тексту, но нужно продолжать, чтобы увидеть, как подчеркнуть только первые биты:
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
rngXE.Select
End If
End If 'bFound
Loop
End Sub