Этюды для программистов Microsoft Word


Информация взята с сайта Microsoft http://msdn.microsoft.com и расположена удобным для работы образом. Перевод автора.

Style (Word 2003)

Объект Style

Объект Style представляет встроенный или определенный пользователем стиль. Стиль включает в себя многие атрибуты форматирования (параметры шрифта, межсимвольное расстояние и.т.д.).

Рассмотрим несколько примеров использования объекта Style.
Следующий код изменяет имя шрифта пользовательского стиля "Color".

ActiveDocument.Styles("Color").Font.Name = "Arial"

Следующий код убирает атрибут "Жирный" встроенного стиля wdStyleHeading1.

ActiveDocument.Styles(wdStyleHeading1).Font.Bold = False

Следующий код создает новый стиль с именем "Bolded" и устанавливает для шрифта атрибут "Жирный". Затем новый стиль применяется в выделенному тексту.

Set Style1=ActiveDocument.Styles.Add(Name:="Bolded",Type:=wdStyleTypeCharacter)
Style1.Font.Bold = True
Selection.Range.Style = "Bolded"

Свойства объекта Style

В следующей таблице приведены основные свойства объекта Style.

Свойство

Тип

Комментарий

AutomaticallyUpdate

Read/write Boolean

Определяет нужно ли подтверждение пользователя при переопределении стиля, основанном на выделенном тексте.

True - переопределение происходит автоматически.
False - запрашивается подтверждение пользователя.

Переопределение стиля происходит в момент, когда стиль применяется к выделенному тексту, имеющему тот же стиль, но форматирование которого было изменено пользователем вручную.

BaseStyle

Read/write Variant

Возвращает или устанавливает существующий стиль, являющийся базовым для данного стиля.

Borders

Коллекция Borders

Возращает коллекцию Borders.

BuiltIn

Read-only Boolean

Возвращает True для встроенных стилей и меток заголовков (caption labels), False - в противном случае.

Description

Read-only String

Возвращает описание стиля. Например:

"Normal + Font: Arial, 12 pt, Bold, Italic, Space Before 12 pt After 3 pt, KeepWithNext, Level 2."

Font

Read/write Font

Возвращает или устанавливает объект Font (шрифт).

Frame

Read-only
Объект Frame

Возвращает объект Frame.

InUse

Read-only Boolean

Возвращает True для новых пользовательских стилей и для встроенных стилей, которые используются в документе или были изменены.

LanguageID

Read/write
WdLanguageID

Возвращает или устанавливает идентификатор языка.

LinkStyle

Read/write
Variant

Возвращает или устанавливает связь между параграфным стилем (тип wdStyleTypeParagraph) и символьным стилем (тип wdStyleTypeCharacter). Два связанных таким образом стиля определяют одинаковое форматирование.

ListLevelNumber

Read-only Long

Возвращает номер уровня списка.

ListTemplate

Объект ListTemplate

Возвращает объект ListTemplate, который отвечает за форматирование списков. Каждому из семи форматов (исключая None) из всех закладок диалога "Bullets and Numbering" (меню Format) соответствует объект ListTemplate.

Если первый параграф объекта не отформатирован как список, возвращает Nothing.

NameLocal

Read/write String

Возвращает имя встроенного стиля на языке пользователя. Установка этого свойства переименовывает пользовательский стиль и создает алиас для встроенного стиля.

NextParagraphStyle

Read/write Variant

Возвращает или устанавливает стиль, который должен быть автоматически применен к новому параграфу, который вставляется после текущего.

NoProofing

Read/write Long

Если True, то отключается проверка орфографии и грамматики для текста, отформатированного заданным стилем.

NoSpaceBetween
ParagraphsOfSameStyle

Read/write Boolean

Если True, то удаляется разрыв (spacing) между двумя параграфами, отформатированными заданным стилем.

ParagraphFormat

Read/write
Объект ParagraphFormat

Возвращает или устанавливает объект ParagraphFormat.

Shading

Объект Shading

Возвращает объект Shading.

Table

Объект TableStyle

Возвращает объект TableStyle, который содержит набор свойств, которые применяются к таблице.

Type

Read-only WdStyleType

Возращает тип стиля, константу перечисления WdStyleType.

 

При установке свойства Style можно использовать строку, задающую имя стиля, положительное целое число, константу из перечисления wdBuiltinStyle или отрицательное целое число, а также объект типа Style.

Перечисление WdStyleType

Константы перечисления WdStyleType приведены в следующей таблице.

Константа Значение
wdStyleTypeParagraph 1
wdStyleTypeCharacter 2
wdStyleTypeTable 3
wdStyleTypeList 4

Коллекция Styles

Объекты Style хранятся в коллекции Styles, которая включает все стили документа.

Dim style As Style
' The following entities could be used as index in Styles collection
style = Styles("HeadlineStyle1")   ' style name (case-sensitive)
style = Styles(wdStyleList2)       ' WdBuiltinStyle constant
style = Styles(11)                 ' positive integer

В качестве индекса можно использовать имя стиля, константу перечисления WdBuiltinStyle (например wdStyleNormal) или целое число. Имя стиля является чувствительным к регистру. Другими словами имена "Normal" и "normal" определяют разные стили. Вместо константы перечисления WdBuiltinStyle можно использовать её значение - отрицательное целое число.

При попытке создания нового стиля с именем существующего стиля, включая встроенные стили, возникает ошибка.

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

Встроенные стили (перечисление WdBuiltinStyle)

Перечисление WdBuiltinStyle определяет более ста встроенных стилей. В следующей таблице приведены константы перечисления WdBuiltinStyle Microsoft Word 2003.

Константа Значeние Константа Значение Константа Значение
wdStyleBlockQuotation -85 wdStyleHtmlCite -98 wdStyleListContinue4 -72
wdStyleBodyText -67 wdStyleHtmlCode -99 wdStyleListContinue5 -73
wdStyleBodyText2 -81 wdStyleHtmlDfn -100 wdStyleListNumber -50
wdStyleBodyText3 -82 wdStyleHtmlKbd -101 wdStyleListNumber2 -59
wdStyleBodyTextFirstIndent -78 wdStyleHtmlNormal -95 wdStyleListNumber3 -60
wdStyleBodyTextFirstIndent2 -79 wdStyleHtmlPre -102 wdStyleListNumber4 -61
wdStyleBodyTextIndent -68 wdStyleHtmlSamp -103 wdStyleListNumber5 -62
wdStyleBodyTextIndent2 -83 wdStyleHtmlTt -104 wdStyleMacroText -46
wdStyleBodyTextIndent3 -84 wdStyleHtmlVar -105 wdStyleMessageHeader -74
wdStyleCaption -35 wdStyleHyperlink -86 wdStyleNavPane -90
wdStyleClosing -64 wdStyleHyperlinkFollowed -87 wdStyleNormal -1
wdStyleCommentReference -40 wdStyleIndex1 -11 wdStyleNormalIndent -29
wdStyleCommentText -31 wdStyleIndex2 -12 wdStyleNormalTable -106
wdStyleDate -77 wdStyleIndex3 -13 wdStyleNoteHeading -80
wdStyleDefaultParagraphFont -66 wdStyleIndex4 -14 wdStylePageNumber -42
wdStyleEmphasis -89 wdStyleIndex5 -15 wdStylePlainText -91
wdStyleEndnoteReference -43 wdStyleIndex6 -16 wdStyleSalutation -76
wdStyleEndnoteText -44 wdStyleIndex7 -17 wdStyleSignature -65
wdStyleEnvelopeAddress -37 wdStyleIndex8 -18 wdStyleStrong -88
wdStyleEnvelopeReturn -38 wdStyleIndex9 -19 wdStyleSubtitle -75
wdStyleFooter -33 wdStyleIndexHeading -34 wdStyleTableOfAuthorities -45
wdStyleFootnoteReference -39 wdStyleLineNumber -41 wdStyleTableOfFigures -36
wdStyleFootnoteText -30 wdStyleList -48 wdStyleTitle -63
wdStyleHeader -32 wdStyleList2 -51 wdStyleTOAHeading -47
wdStyleHeading1 -2 wdStyleList3 -52 wdStyleTOC1 -20
wdStyleHeading2 -3 wdStyleList4 -53 wdStyleTOC2 -21
wdStyleHeading3 -4 wdStyleList5 -54 wdStyleTOC3 -22
wdStyleHeading4 -5 wdStyleListBullet -49 wdStyleTOC4 -23
wdStyleHeading5 -6 wdStyleListBullet2 -55 wdStyleTOC5 -24
wdStyleHeading6 -7 wdStyleListBullet3 -56 wdStyleTOC6 -25
wdStyleHeading7 -8 wdStyleListBullet4 -57 wdStyleTOC7 -26
wdStyleHeading8 -9 wdStyleListBullet5 -58 wdStyleTOC8 -27
wdStyleHeading9 -10 wdStyleListContinue -69 wdStyleTOC9 -28
wdStyleHtmlAcronym -96 wdStyleListContinue2 -70    
wdStyleHtmlAddress -97 wdStyleListContinue3 -71    

Значения констант перечисления WdBuiltinStyle меняются от -1 (wdStyleNormal) до -106 (wdStyleNormalTable).

Встроенные стили со значениями от -92 до -94 включительно существуют (например, значению -92 соответствует стиль с именем "E-mail Signature"), однако константы для них отсутствуют как в справочной системе Microsoft Word, так и в MSDN - см. страницу "Microsoft Word Enumerated Constants" на сайте MSDN.

Интересно, что следующий код распечатывает стиль с именем "E-mail Signature" (индекс -92), но не распечатывает стили с именами "z-Top of Form" (индекс -93) и "z-Bottom of Form" (индекс -94).

Sub AhPrintStylesFromIndex()
    For Index = 1 To ActiveDocument.Styles.Count
        Debug.Print ActiveDocument.Styles(Index).NameLocal
    Next Index
End Sub

В окне "Styles and Formatting", которое появляется при выборе пункта меню "Format\Styles and Formatting" , отображаются только используемые стили. Все встроенные стили доступны в списке "Style for following paragraph" диалога "Modify Style" - см. рисунок.

Использование стилей

Применение стиля

Стиль можно применить к объекту Range и к объекту Selection. Для этого свойству Style объекта нужно присвоить значение стиля, либо имени стиля, либо значение константы перечисления WdBuiltinStyle.

Selection.Style = ActiveDocument.Styles(102)
Selection.Style = ActiveDocument.Styles(wdStyleCaption)
Selection.Style = ActiveDocument.Styles("Caption")
Selection.Style ="Caption"
Selection.Paragraphs(1).Style = wdStyleCaption
Selection.Paragraphs(1).Style = -35   ' also ok, the same as wdStyleCaption
Selection.Paragraphs(1).Style = 1     ' this will cause an error

Копирование стилей между документами

Для копирования стилей между документами и шаблонами используется функция OrganizerCopy объекта Application.

Копирование определения стиля

Для копирования определений стилей из присоединенного шаблона в документ используется функция UpdateStyles.

For Each aDoc In Documents
    aDoc.UpdateStyles
Next aDoc

Изменение стилей в шаблоне

Чтобы иметь возможность программного изменения стилей шаблона, последний должен быть открыт с помощью функции OpenAsDocument.

Удаление стиля

При удалении стиля после подтверждения пользователя стиль удаляется из коллекции. Текст, форматированный с использованием удаленного стиля, форматируется стилем "Normal".

 

Этюды для программистов Microsoft Word. Приложение. Объект Style.


© 2000-2009 Евгений Ахунджанов, Все Права Сохранены.
www.transcriber.ru | Послать письмо автору