Как добавить текст к пустым маркерам в Microsoft Word с помощью VBA?

#vba #ms-word

#vba #ms-word

Вопрос:

Я пытаюсь добавить текст к пустым отформатированным маркерам в документе Word, однако, похоже, я не могу найти ни одного успешного способа сделать это. Я не очень хорош в VBA, я просто использую его для автоматизации повторяющихся отчетов.

Это формат вспомогательных файлов VBA, который я использовал для поиска и замены текста, я просто не могу найти способ настроить добавление в маркеры:

 Private Sub FixedReplacements()
Dim Rng As Range
Dim SearchString As String
Dim EndString As String
Dim Id As String
Dim Link As String

Set Rng = ActiveDocument.Range

    Rng.Find.ClearFormatting
    Rng.Find.Replacement.ClearFormatting
    With Rng.Find
        .Text = ""
        .Replacement.Text = ""
        .Forward = True
        .Wrap = wdFindContinue
        .Format = False
        .MatchCase = False
        .MatchWholeWord = False
        .MatchWildcards = False
        .MatchSoundsLike = False
        .MatchAllWordForms = False
    End With
    Rng.Find.Execute Replace:=wdReplaceAll

End Sub
  

Цель, которую я поставил для пустых маркерных точек, состоит в том, чтобы они отображали что-то вроде «Дополнительной информации нет». << Просто пример.

Комментарии:

1. Первое, что вам нужно определить, является ли маркер символом, вставленным вручную, или он является результатом формата стиля. Затем вам нужно включить символ маркированной точки в текст поиска.

2. @Freeflow эти маркеры представляют собой форматированные маркеры, найденные непосредственно в word. Я не уверен, как реализовать это в скрипте, можете ли вы дать мне какую-нибудь идею о том, как это сделать?

3. wordribbon.tips.net/…

Ответ №1:

То, как это можно сделать, во многом зависит от того, как были вставлены маркеры. Нет способа выполнить поиск непосредственно в маркере. В комментарии упоминается

маркеры — это форматированные маркеры, найденные непосредственно в word.

В этом случае настройкой по умолчанию будет форматирование абзацев в List Paragraph стиле. Если это так, то здесь Find можно выполнить поиск абзацев с использованием этого стиля. Find Код в вопросе тогда выглядел бы следующим образом. (Обратите также внимание на изменения в свойствах Format и Wrap .)

 With Rng.Find
    .Text = "^p"
    .Replacement.Text = "No further information.^p"
    .Forward = True
    .Style = "List Paragraph"
    .Wrap = wdFindStop
    .Format = True
    .MatchCase = False
    .MatchWholeWord = False
    .MatchWildcards = False
    .MatchSoundsLike = False
    .MatchAllWordForms = False
End With
  

Если для нанесения маркеров использовался другой стиль, то можно выполнить поиск по названию этого стиля. Имейте в виду, что имена стилей чувствительны к регистру.

В разделе Файл / Параметры / Дополнительно, Параметры редактирования, есть опция: Использовать обычный стиль для маркированных или нумерованных списков. Если это было активировано, то все становится очень сложным. Лучшее, что вы можете сделать, это попытаться соответствовать применяемому форматированию абзаца (отступы и т.д.).