列出模板中的设置(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。该宏依次调用列表中的其他函数。它获取模板中的一些较常见的设置(当然,您必须指定模板),然后在消息框中显示这些设置。
具体来说,它显示模板的名称,纸张尺寸,页面方向,页边距,制表符(仅适用于模板的第一段)和用户定义的样式。
显然,可以提取和显示许多其他设置。例如,您可能想知道每种样式的特征,而不仅仅是用户定义样式名称的列表。或者,您可能想知道内置样式的格式与默认格式有何不同。仅这些选项就会给宏带来巨大的复杂性。
(考虑到每种样式可以具有数十种不同的格式设置,并且内置样式的“默认格式”由“普通”模板中存储的内容定义。)要包括此类添加,您只需要修改宏即可。汇编所需的信息。
同样要注意的是,尽管篇幅有限,但此处介绍的宏套件仍设计得很简单。它所做的就是将所有提取的设置放入一个字符串中,然后在消息框中显示该字符串。如果您正在查看的模板具有许多用户定义的样式,则字符串可能会变得很长。如果最后的长度超过1,024个字符,则将收到错误消息,因为MsgBox函数只能显示该长度的字符串。如果您预计字符串会更长,则需要在多个消息框中以“块”形式显示它,或者只是将字符串写到一个文本文件中,以便以后检查。
注意:
如果您想知道如何使用此页面(或_WordTips_网站上的任何其他页面)中描述的宏,我准备了一个包含有用信息的特殊页面。
_WordTips_是您进行经济有效的Microsoft Word培训的来源。
(Microsoft Word是世界上最流行的文字处理软件。)本技巧(10117)适用于Microsoft Word 97、2000、2002和2003。您可以在Word(Word 2007)的功能区界面中找到此技巧的版本。和更高版本)在这里: