Существует несколько возможных подходов. Можно было бы не использовать wdReplaceAll
- вместо этого код выполнял бы один «поиск» за раз, применял требуемое форматирование, затем повторял цикл поиска / замены и снова и снова форматировал, пока ничего больше не было найдено. Есть много примеров такого подхода здесь, на переполнении стека и в Интернете в целом.
Быстрее использовать тот факт, что Word может применять определенные виды форматирования как часть функции замены. В пользовательском интерфейсе Word нажмите Ctrl + H, чтобы открыть диалоговое окно «Найти и заменить»; нажмите «Еще», затем нажмите «Формат», чтобы увидеть возможности. Пули и нумерация - это , а не выбор, здесь ... Но стили есть.
Если вы работаете с шаблоном для создания этих документов (настоятельно рекомендуется), определите марки / нумерацию, которые будут использоваться как стили в шаблоне. Если шаблон не используется, код может создавать определения стиля на лету.
Укажите имя стиля (с учетом регистра!) Как часть свойств Replacement
, определенных для Find
, и установите для свойства Format
значение True. Что-то вроде:
Dim rngFind as Word.Range 'Object if late-binding
Set rngFind = WordDoc.Content
With rngFind.Find
.ClearFormatting
.Replacement.ClearFormatting
.Replacement.Style = "My style"
.Format = True
.Execute FindText:=ReplacementTextF, ReplaceWith:=ReplacementText, Replace:=2
End With