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

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

Sub ListStyleNames()

Dim s As Style

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

.TypeParagraph         End With     Next s End Sub

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

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

Sub SimpleStyleSheet()

Dim s As Style     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 s In ActiveDocument.Styles         sOutput = s.NameLocal & vbCrLf         sOutput = sOutput & "   Style type: " & StyleTypes(s.Type) & vbCrLf         sTemp = s.BaseStyle         If Len(sTemp) > 0 Then             sOutput = sOutput & "   Based on: " & s.BaseStyle & vbCrLf         End If         sOutput = sOutput & "   Font: " & s.Font.Name         sTemp = ""

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

If s.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 & vbCrLf         Selection.TypeText (sOutput)

Next s End Sub

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

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

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

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

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

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

(Microsoft Word — самая популярная программа для обработки текстов в мире.) Этот совет (13365) применим к Microsoft Word 2007, 2010, 2013, 2016, 2019 и Word в Office 365. Вы можете найти версию этого совета для старый интерфейс меню Word здесь:

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