Auflisten der Einstellungen in einer Vorlage (Microsoft Word)
Andy fragt sich, ob es eine Möglichkeit gibt, die Einstellungen in einer Vorlage (Ränder, Schriftarten, Tabulatoren usw.) aufzulisten. Er hat viele Informationen über das Zurücksetzen auf die Standardeinstellungen gesehen, aber nichts, was ihm sagen würde, wie die Einstellungen tatsächlich sind. Er stellt fest, dass das Öffnen einer Vorlage und das Betrachten der verschiedenen Elemente umständlich und weniger umfassend ist.
Leider gibt es in Word keine einfache Möglichkeit, dies zu tun. Der Hauptgrund liegt darin, dass es keine vollständige Liste der in Vorlagen gespeicherten Einstellungen gibt und die bloße Anzahl solcher Einstellungen ziemlich entmutigend sein kann.
Das Beste, was Sie tun können, ist, ein Makro zu erstellen, das die Einstellungen überprüft, an denen Sie interessiert sind, und diese dann anzuzeigen.
Betrachten Sie als Beispiel die folgende Makrosuite:
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", ".dotx; .dotm" .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
Das Hauptmakro, mit dem Sie beginnen, ist TemplateSettings. Dieses Makro ruft wiederum die anderen Funktionen in der Liste auf. Es werden einige der gängigsten Einstellungen in einer Vorlage erfasst (Sie können die Vorlage natürlich angeben) und diese Einstellungen dann in einem Meldungsfeld angezeigt.
Insbesondere werden der Name der Vorlage, das Papierformat, die Seitenausrichtung, die Ränder, Tabulatoren (nur für den ersten Absatz in der Vorlage) und benutzerdefinierte Stile angezeigt.
Es gibt offensichtlich viele, viele andere Einstellungen, die extrahiert und angezeigt werden könnten. Beispielsweise möchten Sie möglicherweise wissen, welche Merkmale die einzelnen Stile aufweisen, und nicht nur eine Liste benutzerdefinierter Stilnamen. Oder Sie möchten wissen, wie sich die Formatierung für integrierte Stile von der Standardformatierung unterscheidet. Allein diese Optionen würden dem Makro eine enorme Komplexität verleihen.
(Beachten Sie, dass jeder Stil Dutzende verschiedener Formatierungseinstellungen haben kann und die „Standardformatierung“ für integrierte Stile durch die in der Vorlage „Normal“ gespeicherten Elemente definiert wird.) Um solche Ergänzungen aufzunehmen, müssen Sie nur das Makro ändern die gewünschten Informationen zu sammeln und zusammenzustellen.
Beachten Sie auch, dass die hier vorgestellte Makrosuite trotz ihrer Länge einfach gestaltet ist. Es werden lediglich alle extrahierten Einstellungen in eine Zeichenfolge eingefügt und diese Zeichenfolge dann in einem Meldungsfeld angezeigt. Wenn die Vorlage, die Sie betrachten, viele, viele benutzerdefinierte Stile hat, kann die Zeichenfolge sehr lang werden. Wenn es zu lang wird, wird eine Fehlermeldung angezeigt, da die MsgBox-Funktion nur eine relativ kurze Meldung anzeigen kann. Wenn Sie damit rechnen, dass Ihre Zeichenfolge länger sein wird, möchten Sie sie in „Blöcken“ in mehreren Meldungsfeldern anzeigen oder die Zeichenfolge einfach in eine Textdatei schreiben, die Sie später untersuchen können.
_Hinweis: _
Wenn Sie wissen möchten, wie die auf dieser Seite (oder auf einer anderen Seite der WordTips-Websites) beschriebenen Makros verwendet werden, habe ich eine spezielle Seite vorbereitet, die hilfreiche Informationen enthält.
WordTips ist Ihre Quelle für kostengünstige Microsoft Word-Schulungen.
(Microsoft Word ist die weltweit beliebteste Textverarbeitungssoftware.) Dieser Tipp (10118) gilt für Microsoft Word 2007, 2010, 2013 und 2016. Eine Version dieses Tipps für die ältere Menüoberfläche von Word finden Sie hier: