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

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

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

В качестве примера рассмотрим следующий набор макросов:

Sub TemplateSettings()

Dim templatePath As String     Dim fleName As String     Dim str As String     Dim sTemp As String

' Select the template to be opened     templatePath = Application.Templates(1).Path     fleName = GetTemplateName(templatePath)

If fleName = "" Then         MsgBox "No template selected"

Exit Sub     End If

Application.Documents.Open (fleName)



str = ActiveDocument.Name & vbCr & vbCr

sTemp = "Other"

Select Case ActiveDocument.Sections(1).PageSetup.PaperSize         Case wdPaperLetter             sTemp = "Letter"

Case wdPaperLegal             sTemp = "Legal"

Case wdPaperA4             sTemp = "A4"

End Select     str = str & "Paper size: " & sTemp

sTemp = "Landscape"

If ActiveDocument.Sections(1).PageSetup.Orientation = wdOrientPortrait Then         sTemp = "Portrait"

End If     str = str & "  Orientation: " & sTemp & vbCr

str = str & "Margins " & marginsStr & vbCr     str = str & vbCr & "User Defined Tab stops " & UserTabStops & vbCr     str = str & vbCr & "User defined styles " & userStyles

Application.Documents(fleName).Close SaveChanges:=wdDoNotSaveChanges

MsgBox str End Sub
Function GetTemplateName(templatePath As String) As String     Dim dlg As FileDialog     Set dlg = Application.FileDialog( _       FileDialogType:=msoFileDialogFilePicker)

With dlg         .AllowMultiSelect = False         .InitialFileName = templatePath         .Filters.Clear         .Filters.Add "Templates", "*.dot"

.Filters.Add "All files", "."

.FilterIndex = 1         .Show         If .SelectedItems.Count > 0 Then             GetTemplateName = .SelectedItems(1)

Else             GetTemplateName = ""

End If     End With     Set dlg = Nothing End Function
Function userStyles() As String     Dim sty As Style     Dim s As String

s = ""

For Each sty In ActiveDocument.Styles         If Not sty.BuiltIn Then             s = vbCr & sty.NameLocal & "  " & sty.Description         End If     Next sty     userStyles = s End Function
Function UserTabStops() As String     Dim s As String     Dim tbStop As TabStop     Dim alg

alg = Array("Left", "Center", "Right", "Decimal", "Bar", "?", "List")

s = ""

For Each tbStop In ActiveDocument.Paragraphs(1).TabStops         s = s & vbCr & ptConvert(tbStop.Position) & _           " Alignment: " & alg(tbStop.Alignment)

Next tbStop     UserTabStops = s End Function
Function marginsStr() As String     With ActiveDocument         marginsStr = _           "Left: " & ptConvert(.PageSetup.LeftMargin) & _           ", Right: " & ptConvert(.PageSetup.RightMargin) & _           ", Top: " & ptConvert(.PageSetup.TopMargin) & _           ", Bottom: " & ptConvert(.PageSetup.BottomMargin)

End With End Function
Function ptConvert(p As Single) As String     ptConvert = Format(PointsToInches(p), "###.##")

' use the following line if you want dimensions in centimeters     'ptConvert = Format(PointsToCentimeters(p), "###.##")

End Function

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

В частности, он отображает имя шаблона, размер бумаги, ориентацию страницы, поля, позиции табуляции (только для первого абзаца в шаблоне) и определенные пользователем стили.

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

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

Также обратите внимание, что представленный здесь набор макросов спроектирован как простой, несмотря на его длину. Все, что он делает, — это помещает все извлеченные настройки в строку, а затем отображает эту строку в окне сообщения. Если в шаблоне, который вы просматриваете, много, много пользовательских стилей, то строка может стать довольно длинной. Если он окажется длиннее 1024 символов, вы получите сообщение об ошибке, потому что функция MsgBox может отображать только строку до этой длины. Если вы ожидаете, что ваша строка будет длиннее, вы захотите отобразить ее «фрагментами» в нескольких окнах сообщений или просто записать строку в текстовый файл, который вы сможете позже изучить.

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

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

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

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

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

link: / wordribbon-Listing_the_Settings_in_a_Template [Отображение настроек в шаблоне].