Stampa di un elenco di elementi costitutivi (Microsoft Word)
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.