Перечисление настроек в шаблоне (Microsoft Word)
Энди задается вопросом, есть ли способ «перечислить» настройки в шаблоне (поля, шрифты, позиции табуляции и т. Д.). Он видел много информации о сбросе настроек по умолчанию, но ничего, что могло бы сказать ему, каковы на самом деле настройки. Он отмечает, что открывать шаблон и просматривать различные элементы неудобно и не так полно.
К сожалению, в 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 [Отображение настроек в шаблоне]
.