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.