Trovare stili inutilizzati (Microsoft Word)
La capacità di creare e gestire stili è una delle caratteristiche principali di Word. Gli stili consentono di applicare rapidamente e facilmente una formattazione coerente in tutto il documento e di aggiornare tale formattazione in base alle esigenze.
Word fornisce alcuni stili incorporati (predefiniti) e puoi aggiungerne altri in base alle tue esigenze. Ad un certo punto potresti voler determinare quali stili non sono in uso in un documento. Questo elenco potrebbe quindi essere utilizzato per determinare quali stili potresti facilmente eliminare, semplicemente perché non sono più necessari.
Non esiste un modo intrinseco per creare un elenco di stili inutilizzati in Word.
Invece, devi creare una macro che faccia il lavoro per te. Si potrebbe pensare che la creazione di una macro di questo tipo sia un semplice compito di esaminare quali stili crede siano in uso in Word e quindi confrontarli con gli stili definiti. Il problema con questo approccio è che la proprietà InUse di VBA (che si applica agli oggetti Style) viene utilizzata per diversi scopi. La definizione ufficiale per la proprietà InUse è che è True se una delle due condizioni seguenti è soddisfatta:
-
Lo stile è uno stile predefinito che è stato modificato o applicato nel documento.
-
Lo stile è uno stile definito dall’utente che è stato creato nel documento.
Ciò significa che la proprietà InUse non indica se uno stile è effettivamente in uso nel documento. Si potrebbe fare qualcosa per la definizione di uno stile senza applicarlo effettivamente, e quello stile verrebbe contrassegnato come “in uso” anche se non c’è testo nel documento che effettivamente utilizza lo stile.
Tuttavia, è possibile generare un elenco di stili non in uso utilizzando entrambe le proprietà InBuilt e InUse in una macro. La seguente macro VBA utilizza questo approccio:
Sub CreateStyleList() Dim docThis As Document Dim styItem As Style Dim sBuiltIn(499) As String Dim iStyBICount As Integer Dim sUserDef(499) As String Dim iStyUDCount As Integer Dim sInUse(499) As String Dim iStyIUCount As Integer Dim iParCount As Integer Dim J As Integer, K As Integer Dim sParStyle As String Dim bInUse As Boolean ' Ref the active document Set docThis = ActiveDocument ' Collect all styles being used iStyIUCount = 0 iParCount = docThis.Paragraphs.Count iParOut = 0 For J = 1 To iParCount sParStyle = docThis.Paragraphs(J).Style For K = 1 To iStyIUCount If sParStyle = sInUse(K) Then Exit For Next K If K = iStyIUCount + 1 Then iStyIUCount = K sInUse(iStyIUCount) = sParStyle End If Next J iStyBICount = 0 iStyUDCount = 0 ' Check out styles that are "in use" For Each styItem In docThis.Styles 'see if in those being used bInUse = False For J = 1 To iStyIUCount If styItem.NameLocal = sInUse(J) Then bInUse = True Next J 'Add to those not in use If Not bInUse Then If styItem.BuiltIn Then iStyBICount = iStyBICount + 1 sBuiltIn(iStyBICount) = styItem.NameLocal Else iStyUDCount = iStyUDCount + 1 sUserDef(iStyUDCount) = styItem.NameLocal End If End If Next styItem 'Now create the output document Documents.Add Selection.TypeText "Styles In Use" Selection.TypeParagraph For J = 1 To iStyIUCount Selection.TypeText sInUse(J) Selection.TypeParagraph Next J Selection.TypeParagraph Selection.TypeParagraph Selection.TypeText "Built-in Styles Not In Use" Selection.TypeParagraph For J = 1 To iStyIUCount Selection.TypeText sBuiltIn(J) Selection.TypeParagraph Next J Selection.TypeParagraph Selection.TypeParagraph Selection.TypeText "User-defined Styles Not In Use" Selection.TypeParagraph For J = 1 To iStyIUCount Selection.TypeText sUserDef(J) Selection.TypeParagraph Next J Selection.TypeParagraph Selection.TypeParagraph End Sub
La macro esamina prima ogni paragrafo del documento per determinare i nomi degli stili effettivamente utilizzati nel documento. Queste informazioni vengono memorizzate nell’array sInUse. Quindi, la macro inizia a esaminare l’elenco che Word pensa siano in uso: questi sono gli stili che appartengono alla raccolta di stili. Se lo stile non è nell’array sInUse, viene aggiunto all’array sBuiltIn (per gli stili incorporati) o all’array sUserDef (per gli stili definiti dall’utente). Al termine dei confronti, viene creato un nuovo documento che elenca i risultati.
_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 (1488) si applica a Microsoft Word 97, 2000, 2002 e 2003.