Word Макрос: Получить список стилей (из коллекции стилей)

Автор Fire, 11 июня 2017, 16:05

Fire

Как можно получить список только тех стилей, которые видны в панели стили Word?

Администратор

Цитата:
которые видны в панели стили Word?


Как мне посмотреть эту панель? Какая у вас версия Ворда и куда надо щёлкать, чтобы увидеть эту панель? Можете сделать скриншот.

Fire


Администратор

В Ворде какой-то сбой, а может так и надо, а может это только у меня: макрос возвращает стили, которых нет в коллекции стилей (например, стили-заголовки). Кроме того, в области Стили, если щёлкнуть по стрелке справа от стиля-заголовка, есть пункт "Удалить из коллекции стилей", но стиля нет в коллекции стилей.

Поэтому этот макрос возвращает не только стили, которые видны в коллекции стилей, но ещё некоторые другие. Возможно эти стили всегда так себя ведут. Другого инструмента для работы с коллекцией стилей я не знаю.

Макрос
Sub Макрос()
   
    Dim style As style, cln_Styles As New Collection
    Dim i As Long
   
   
    ' Цикл по всем стилям в активном файле.
    For Each style In ActiveDocument.Styles
        ' Если стиль из коллекции стилей.
        If style.QuickStyle = True Then
            ' Запись имени стиля в коллекцию "cln_Styles".
            cln_Styles.Add Item:=style.NameLocal
        End If
    Next style
   
    ' Вывод стилей в View - Immediate Window.
    For i = 1 To cln_Styles.Count
        Debug.Print cln_Styles(i)
    Next i
   
End Sub
[свернуть]

Fire

Большое спасибо!
Да, стили-заголовки и у меня отобразились 9 шт., хотя в области Стили их видно у меня в файле только 3 шт. Но это все-равно решает задачу.

Администратор

Я понял логику Ворда, почему на мониторе пользователь не видит в коллекции стилей стиль, а макрос возвращает стиль.
Это связано с тем, что некоторые стили появляются в коллекции стилей, когда происходит какое-то изменение в файле.

Например, если появился Заголовок 5, то в коллекции появится Заголовок 6. Это связано с таким явлением: Показывать следующий заголовок, когда используется предыдущий уровень (это в области "Стили" - внизу "Параметры..."). Поэтому, когда вы примените например Заголовок 5, то в коллекции стилей появится Заголовок 6, хотя до этого его не было.

Заголовок оглавления появляется в коллекции стилей, когда вставляется встроенное оглавление (оно выбирается из списка и вместе с оглавлением вставляется заголовок "Оглавление").

Стиль "Название объекта" появляется, когда в файл вставляется перекрёстная ссылка: вкладка "Ссылки" - кнопка "Вставить название".

Как вернуть, только те стили, которые видны в коллекции стилей, пока не знаю.