1

Тема: Полезности для работы со Стилями VBA

В данной теме я рассказываю о работе со Стилями Word в VBA.
Для начала я создал класс clsStylesSort (см. вложение) в котором создал ряд свойств которые можно подразделить на 2-е группы:

I-я группа:
1. StylesParagraphOnly - это список стилей типа "Абзац", в нем собираются все стили Активного документа, в которых основным параметром являются Настройки абзаца.
2. StylesFontOnly - это список стилей типа "Знак", в нем собираются все стили Активного документа, в которых основным параметром являются Настройки знака.
3. StylesParagraphLinked - это список стилей типа "Связанный Абзац и Знак", в нем собираются все стили Активного документа, в которых основным параметром являются Настройки абзаца, привязанного к знаку.
4. StylesFontLinked - это список стилей типа "Связанный Знак", в нем собираются все стили Активного документа, в которых основным параметром являются Настройки знака, привязанного к абзацу.

II-я группа:
1. StylesParagraphOnlyInDocument - это список стилей типа "Абзац", примененных в Активном документе, из списка 1,  I-й группы.
2. StylesFontOnlyInDocument - это список стилей типа "Знак", примененных в Активном документе, из списка 2,  I-й группы.
3. StylesParagraphLinkedInDocument - это список стилей типа "Связанный Абзац и Знак", примененных в Активном документе, из списка 3,  I-й группы.
4. StylesFontLinkedInDocument - это список стилей типа "Связанный Знак", примененных в Активном документе, из списка 4,  I-й группы.

Особого внимания заслуживают свойства StylesParagraphLinkedInDocument и StylesFontLinkedInDocument:

Если StylesParagraphLinkedInDocument = 0, то ни к одному абзацу в документе не применялся тип "Связанный Абзац и Знак", иначе свойство возвращает список стилей примененных в документе.

Если StylesFontLinkedInDocument возвращает список, то это означает, что в каком-то из абзацев с другим стилем применен стиль Знака из Связанного абзаца.

Для работы с классом clsStylesSort импортируйте вложенный файл в нужный Вам проект VBA.

Для обращения к свойствам класса используйте синтаксис: clsStylesSort.StylesParagraphOnlyInDocument

Например процедура:

Public Sub TestStyle()
Dim cls As clsStylesSort
    Set cls = New clsStylesSort
    MsgBox UBound(cls.StylesParagraphOnly) & " / " & UBound(cls.StylesParagraphOnlyInDocument)
End Sub

выводит на экран сообщение об общем количестве стилей тира «Абзац» и количество стилей этого типа примененных в документе.

Продолжение следует. По непоняткам пишите big_smile

Post's attachments

clsStylesSort.cls 5.81 Кб, 28 скачиваний с 2012-10-16 

You don't have the permssions to download the attachments of this post.

2

Re: Полезности для работы со Стилями VBA

Вот модуль который содержит функцию IsCompareFonts, которая возвращает значение True, если 2 шрифта совпадают и False, если не совпадают.

Public Function IsCompareFonts(Optional Font1 As Font, Optional Font2 As Font) As Boolean

Данная функция содержит 2 необязательных аргумента Font1 и Font2, представляющие собой Объект Font, объектной модели Word. По умолчанию если аргументы функции не заданы, то:
Font1 - представляет шрифт 1-го знака Выделения
Font2 - шрифт Стиля 1-го абзаца выделения.
Также модуль содержит тестирующий макрос Test_IsCompareFonts, который сравнивает параметры шрифта 1 знака выделения и шрифт Стиля 1-го абзаца выделения. И выводит результат сравнения на экран.
Если что не понятно спрашивайте.

Post's attachments

CompareFonts.bas 4.91 Кб, 16 скачиваний с 2012-10-18 

You don't have the permssions to download the attachments of this post.