Karen vorrebbe stampare un elenco di tutti i blocchi predefiniti disponibili in Word, ma sembra che non riesca a scoprire come farlo. È possibile stampare un elenco di voci di glossario, ma questo è solo un sottoinsieme del gruppo più ampio di Building Block che potresti avere su un sistema.

Non esiste una funzionalità incorporata per stampare tutti i Building Blocks su un sistema, ma è possibile creare una macro per accedere alle informazioni Building Block. I Building Blocks sono archiviati in modelli, con il modello Building Blocks.dotx contenente tutti i Building Blocks incorporati.

Pertanto, è necessario creare una macro che passi attraverso ogni modello che hai aperto e prenda le informazioni sui blocchi predefiniti da ciascuno di essi. Considera il seguente esempio:

Sub PrintBuildingBlocks()

Dim oTemplate As Template     Dim oBBT As BuildingBlockType     Dim oCat As Category     Dim oBB As BuildingBlock     Dim J As Integer     Dim K As Integer     Dim L As Integer

' Loops through all of the open templates     For Each oTemplate In Templates         ' Prints the name of the template         Selection.TypeText oTemplate.Name & vbCrLf         For J = 1 To oTemplate.BuildingBlockTypes.Count             Set oBBT = oTemplate.BuildingBlockTypes(J)

' Checks if the building block category has at least one entry             If oBBT.Categories.Count > 0 Then                 ' Prints the name of the type of building block                 Selection.TypeText vbTab & oBBT.Name & vbCrLf                 For K = 1 To oBBT.Categories.Count                     Set oCat = oBBT.Categories(K)

' Prints the name of the category of the building block                     Selection.TypeText vbTab & vbTab & oCat.Name & vbCrLf                     For L = 1 To oCat.BuildingBlocks.Count                         Set oBB = oCat.BuildingBlocks.Item(L)

' Prints the name, description, and value                         Selection.TypeText vbTab & vbTab & vbTab & _                           "BB " & L & ": " & oBB.Name & vbCrLf                         Selection.TypeText vbTab & vbTab & vbTab & _                           "Description: " & oBB.Description & vbCrLf                         Selection.TypeText vbTab & vbTab & vbTab & _                           "Value: " & oBB.Value & vbCrLf & vbCrLf                     Next L                 Next K             Else                 ' Prints the name of the type of building block AND                 ' mentions that it does not contain any entries                 Selection.TypeText vbTab & oBBT.Name & _                   " (no entries)" & vbCrLf             End If         Next J     Next oTemplate End Sub

Per i migliori risultati, apri un documento nuovo di zecca; è questo documento in cui la macro inserisce le informazioni sui blocchi predefiniti. Prima di eseguire la macro, è necessario aprire il file Building Blocks.dotx visualizzando la scheda Inserisci della barra multifunzione, quindi facendo clic su Parti rapide | Organizzatore di blocchi predefiniti. La visualizzazione di Building Blocks Organizer in questo modo garantisce che Word apra il modello Building Blocks.dotx.

Quando si esegue la macro, passa attraverso ogni modello, attraverso ogni tipo di Building Block nel modello, attraverso ogni categoria in ogni tipo e infine attraverso ogni Building Block in ogni categoria. Vengono stampati il ​​nome, la descrizione e il valore effettivo di ogni Building Block.

Questo potrebbe non dare un risultato “carino” come potresti sperare perché i Building Blocks sono molto più che testo: possono anche essere programmi a tutti gli effetti. Ciò potrebbe causare alcuni caratteri stravaganti nel documento creato dalla macro.

C’è anche qualcos’altro di interessante da notare su questa macro. Notare che il ciclo esterno passa attraverso ogni modello utilizzando un ciclo For Each.

Questo è piuttosto normale e banale per lavorare attraverso le raccolte nel modello a oggetti di Word. Tuttavia, i tre cicli nidificati all’interno di questo ciclo esterno utilizzano un ciclo For Next perché le raccolte coinvolte (BuildingBlockTypes, Categorie e BuildingBlocks) non supportano i cicli For Each.

_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 (11096) si applica a Microsoft Word 2007, 2010, 2013, 2016, 2019 e Word in Office 365.