необходимые
Я хочу найти все вхождения одного текста в документе MS Word, сделать каждый случай гиперссылкой и изменить общий стиль гиперссылки на один из моих вариантов выбора.
Что я имею
Поскольку я понятия не имею, как выполнить вышеупомянутое требование в целом, я начал с его части, а именно с поиска отдельного экземпляра и его адаптации.
Итак, я записал макрос, что привело к следующему коду. Этот код я адаптировал так, чтобы подпрограмма могла принимать параметры для гиперссылки и субадреса гиперссылки:
Sub AutoDetectHyperlinksForText(hyperlinkText As String, subaddress As String, style As String)
    Selection.Find.ClearFormatting
    With Selection.Find
        .Text = hyperlinkText
        .Replacement.Text = ""
        .Forward = True
        .Wrap = wdFindContinue
        .Format = False
        .MatchCase = False
        .MatchWholeWord = False
        .MatchWildcards = False
        .MatchSoundsLike = False
        .MatchAllWordForms = False
    End With
    Selection.Find.Execute
    ActiveDocument.Hyperlinks.Add Anchor:=Selection.Range, Address:="", _
        subaddress:=subaddress, ScreenTip:="", TextToDisplay:= _
        hyperlinkText
    Selection.MoveLeft Unit:=wdWord, Count:=1, Extend:=wdExtend
    Selection.Style = ActiveDocument.Styles(style)
End Sub
С этим легко вызвать подпрограмму для нескольких экземпляров слов, таких как:
Call AutoDetectHyperlinksForText("broadcasts", "_broadcastService", "Subtle Emphasis")
Вопрос
Как я могу адаптировать этот макрос, чтобы он проверял весь документ?
Бонусный вопрос
Есть ли способ изменить приведенный выше скрипт, чтобы я мог сохранить свой выбор и устранить необходимость в .MoveLeft?
В псевдокоде это будет примерно так:
Dim mySelect as Selection
mySelect = Selection.Find.Execute
ActiveDocument.Hyperlinks.Add Anchor:=mySelect.Range, Address:="", _
    subaddress:=subaddress, ScreenTip:="", TextToDisplay:= _
    hyperlinkText
mySelect.Style = ActiveDocument.Styles("Subtle Emphasis")
