Elenco delle impostazioni in un modello (Microsoft Word)
Andy si chiede se esiste un modo per “elencare” le impostazioni in un modello (margini, caratteri, tabulazioni, ecc.). Ha visto molte informazioni sul ripristino delle impostazioni predefinite, ma nulla che gli dirà quali sono effettivamente le impostazioni. Osserva che aprire un modello e guardare i vari elementi è goffo e meno che esauriente.
Sfortunatamente, non esiste un modo semplice per farlo in Word. Il motivo principale è che non esiste un elenco completo delle impostazioni memorizzate nei modelli e il numero di tali impostazioni può essere piuttosto scoraggiante.
La cosa migliore che puoi fare è creare una macro che esaminerà le impostazioni che ti interessano e quindi visualizzarle.
Come esempio, considera la seguente suite di macro:
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
La macro principale con cui inizi è TemplateSettings. Questa macro, a sua volta, chiama le altre funzioni nell’elenco. Cattura alcune delle impostazioni più comuni all’interno di un modello (puoi specificare il modello, ovviamente) e quindi visualizza tali impostazioni in una finestra di messaggio.
Nello specifico, visualizza il nome del modello, il formato della carta, l’orientamento della pagina, i margini, le tabulazioni (solo per il primo paragrafo del modello) e gli stili definiti dall’utente.
Ci sono ovviamente molte, molte altre impostazioni che potrebbero essere estratte e visualizzate. Ad esempio, potresti voler sapere quali sono le caratteristiche di ogni stile, piuttosto che solo un elenco di nomi di stili definiti dall’utente. Oppure potresti voler sapere in che modo la formattazione per gli stili incorporati differisce dalla formattazione predefinita. Solo queste opzioni da sole introdurrebbero un’enorme quantità di complessità alla macro.
(Considera che ogni stile può avere dozzine di impostazioni di formattazione diverse e la “formattazione predefinita” per gli stili incorporati è definita da ciò che è memorizzato nel modello Normal.) Per includere tali aggiunte, devi solo modificare la macro raccogliere e compilare le informazioni desiderate.
Si noti inoltre che la macro suite qui presentata è progettata per essere semplice, nonostante la sua lunghezza. Tutto ciò che fa è inserire tutte le impostazioni estratte in una stringa e quindi visualizzare quella stringa in una finestra di messaggio. Se il modello che stai guardando ha molti, molti stili definiti dall’utente, allora è possibile che la stringa diventi piuttosto lunga. Se finisce per diventare troppo lungo, riceverai un errore perché la funzione MsgBox può visualizzare solo un messaggio relativamente breve. Se prevedi che la tua stringa sarà più lunga, ti consigliamo di visualizzarla in “blocchi” in più finestre di messaggio, o semplicemente scrivere la stringa in un file di testo che potrai esaminare in seguito.
_Nota: _
Se desideri sapere come utilizzare le macro descritte in questa pagina (o in qualsiasi altra pagina dei siti WordTips), ho preparato una pagina speciale che include informazioni utili.
WordTips è la tua fonte di formazione economica su Microsoft Word.
(Microsoft Word è il software di elaborazione testi più popolare al mondo.) Questo suggerimento (10118) si applica a Microsoft Word 2007, 2010, 2013 e 2016. Puoi trovare una versione di questo suggerimento per la vecchia interfaccia del menu di Word qui: