Дэйву понравился бы способ распечатать полнофункциональную таблицу стилей для своих документов. Он знает, что может выбрать печать «Стилей» в диалоговом окне «Печать», но он предпочел бы иметь таблицу стилей, которая показывает фактические стили, такие как цвет, размер, шрифт и т. Д.

К сожалению, в Word такой возможности нет. Однако вы можете создать таблицу стилей по своему вкусу с помощью макроса. Например, следующее будет вставлять в текущий документ имена всех стилей, доступных в документе. Имя каждого стиля находится в отдельной строке (абзаце) и форматируется с использованием различных стилей.

Sub ListStyleNames()

For Each Style In ActiveDocument.Styles        With Selection            .Style = ActiveDocument.Styles(Style)

.TypeText (ActiveDocument.Styles(Style).NameLocal)

.TypeParagraph        End With    Next End Sub

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

Проблема создания подробной таблицы стилей с использованием макросов состоит в том, что стили могут содержать массу информации. Объектная модель, используемая Word (и доступная в VBA), быстро становится довольно сложной при тестировании стилей, чтобы увидеть, что они содержат. Вот простой пример, чтобы дать вам представление:

Sub SimpleStyleSheet()

Dim sOutput As String     Dim sTemp As String     Dim StyleTypes(4) As String

StyleTypes(1) = "Paragraph"

StyleTypes(2) = "Character"

StyleTypes(3) = "Table"

StyleTypes(4) = "List"



For Each Style In ActiveDocument.Styles         sOutput = Style.NameLocal & vbCrLf         sOutput = sOutput & "   Style type: " & StyleTypes(Style.Type) & vbCrLf         sTemp = Style.BaseStyle         If Len(sTemp) > 0 Then             sOutput = sOutput & "   Based on: " & Style.BaseStyle & vbCrLf         End If         sOutput = sOutput & "   Font: " & Style.Font.Name         sTemp = ""

If Style.Font.Bold Then sTemp = sTemp & "Bold, "

If Style.Font.Italic Then sTemp = sTemp & "Italic, "

If Len(sTemp) > 0 Then             sTemp = Left(sTemp, Len(sTemp) - 2)

sOutput = sOutput & " (" & sTemp & ")"

End If         sOutput = sOutput & vbCrLf         Selection.TypeText (sOutput & vbCrLf)

Next End Sub

Единственное, что делает этот макрос, — это перечисление всех стилей, их типа, основаны ли они на другом стиле (и если да, то как этот стиль назван), какой шрифт используется в этом стиле и шрифт жирный или курсивный. Любой, кто знаком со стилями, сразу поймет, что эти несколько элементов — лишь небольшая часть того, что можно определить в рамках стиля. Чтобы проверить все возможные форматы стилей и распечатать их в таблице стилей, макрос действительно будет очень длинным.

Даже в этом случае этот макрос может быть полезен, поскольку он дает представление о том, как собрать вашу собственную таблицу стилей. Вам просто нужно выяснить, что вы хотите видеть в таблице стилей, а затем добавить код макроса, чтобы определить эту информацию и распечатать ее.

_Примечание: _

Если вы хотите знать, как использовать макросы, описанные на этой странице (или на любой другой странице на сайтах WordTips), я подготовил специальную страницу, содержащую полезную информацию.

link: / wordribbon-WordTipsMacros [Щелкните здесь, чтобы открыть эту специальную страницу в новой вкладке браузера].

WordTips — ваш источник экономичного обучения работе с Microsoft Word.

(Microsoft Word — самая популярная программа для обработки текстов в мире.) Этот совет (6748) применим к Microsoft Word 97, 2000, 2002 и 2003. Вы можете найти версию этого совета для ленточного интерфейса Word (Word 2007 и позже) здесь:

link: / wordribbon-Printing_a_Full_Style_Sheet [Печать полной таблицы стилей].