1

Тема: Правка маркированных списков

Добрый день.
Подскажите, пожалуйста.

Есть документ word. Документ содержит маркированные списки. Списки разбросаны по всему документы. Есть также маркированные списки вложенные друг в друга.
Проблема в том, что часть список содержат стандартный маркер (черная точка), а некоторые заданы как квадратики, в форме круга, галочки, стрелочек.

Хотелось бы все маркированные списки привести к единому общему виду маркера (черная точка), но при этом не менять структуру их вложенности.

Найдя в интернете несколько примеров, набросал код.
Но возникло пару проблем:
1. почему-то не учитывает первый параграф в каждом маркированном списке (т.е. обработка списка начинается всегда со второго параграфа)
2. меняет только первый уровень маркированного списка (вложенные маркированные списки уже не меняет)
3. происходит сдвиг отступов в маркированном списке

Что нужно подправить в данном коде или может есть какой-то более элегантный способ решения задачи (другие методы/свойства)?


Sub TestMacro()
    Dim iPR As Paragraph, iList As ListTemplate
    Set iList = ListGalleries(wdBulletGallery).ListTemplates(1)
 
    With iList.ListLevels(1)
        .NumberFormat = ChrW(61623)
        .TrailingCharacter = wdTrailingTab
        .NumberStyle = wdListNumberStyleBullet
        .ResetOnHigher = 0
        .StartAt = 1
        .Font.Name = "Symbol"
    End With
    
    For Each iPR In ActiveDocument.Paragraphs
        If iPR.Range.ListFormat.ListType = wdListBullet Then
            iPR.Range.ListFormat.ApplyListTemplateWithLevel ListTemplate:=iList, ContinuePreviousList:=False, ApplyTo:=wdListApplyToSelection, DefaultListBehavior:=wdWord10ListBehavior
        End If
    Next
End Sub

2

Re: Правка маркированных списков

Никто не сталкивался?