Karen möchte eine Liste aller in Word verfügbaren Bausteine ​​ausdrucken, kann aber anscheinend nicht herausfinden, wie das geht. Sie können eine Liste von AutoText-Einträgen ausdrucken, dies ist jedoch nur eine Teilmenge der größeren Gruppe von Bausteinen, die Sie auf einem System haben könnten.

Es gibt keine integrierte Funktion zum Drucken aller Bausteine ​​auf einem System, Sie können jedoch ein Makro erstellen, um auf die Bausteininformationen zuzugreifen. Bausteine ​​werden in Vorlagen gespeichert, wobei die Vorlage Building Blocks.dotx alle integrierten Bausteine ​​enthält.

Daher müssen Sie ein Makro erstellen, das jede geöffnete Vorlage durchläuft und die Bausteininformationen von jeder Vorlage abruft. Betrachten Sie das folgende Beispiel:

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

Öffnen Sie ein brandneues Dokument, um die besten Ergebnisse zu erzielen. In diesem Dokument platziert das Makro die Bausteininformationen. Vor dem Ausführen des Makros sollte Building Blocks.dotx geöffnet werden, indem die Registerkarte Einfügen des Menübands angezeigt und dann auf Quick Parts | geklickt wird Building Blocks Organizer. Wenn Sie den Building Blocks Organizer auf diese Weise anzeigen, wird sichergestellt, dass Word die Vorlage Building Blocks.dotx öffnet.

Wenn Sie das Makro ausführen, durchläuft es jede Vorlage, jeden Bausteintyp in der Vorlage, jede Kategorie in jedem Typ und schließlich jeden Baustein in jeder Kategorie. Der Name, die Beschreibung und der tatsächliche Wert für jeden Baustein werden gedruckt.

Dies führt möglicherweise nicht zu einem „hübschen“ Ergebnis, wie Sie vielleicht hoffen, da Bausteine ​​viel mehr als nur Text sind – sie können auch vollwertige Programme sein. Dies kann dazu führen, dass das vom Makro erstellte Dokument einige unkonventionelle Zeichen enthält.

Es gibt noch etwas Interessantes an diesem Makro zu beachten. Beachten Sie, dass die äußere Schleife jede Vorlage mithilfe einer For Each-Schleife durchläuft.

Dies ist eher normal und banal für das Durcharbeiten von Sammlungen im Word-Objektmodell. Die drei verschachtelten Schleifen in dieser äußeren Schleife verwenden jedoch eine For Next-Schleife, da die beteiligten Sammlungen (BuildingBlockTypes, Categories und BuildingBlocks) For Each-Schleifen nicht unterstützen.

_Hinweis: _

Wenn Sie wissen möchten, wie die auf dieser Seite (oder auf einer anderen Seite der WordTips-Websites) beschriebenen Makros verwendet werden, habe ich eine spezielle Seite vorbereitet, die hilfreiche Informationen enthält.

WordTips ist Ihre Quelle für kostengünstige Microsoft Word-Schulungen.

(Microsoft Word ist die weltweit beliebteste Textverarbeitungssoftware.) Dieser Tipp (11096) gilt für Microsoft Word 2007, 2010, 2013, 2016, 2019 und Word in Office 365.