Karen aimerait imprimer une liste de tous les Building Blocks disponibles dans Word, mais n’arrive pas à découvrir comment le faire. Vous pouvez imprimer une liste d’entrées d’insertion automatique, mais il ne s’agit que d’un sous-ensemble du plus grand groupe de blocs de construction que vous pourriez avoir sur un système.

Il n’y a pas de capacité intégrée pour imprimer tous les blocs de construction sur un système, mais vous pouvez créer une macro pour accéder aux informations des blocs de construction. Les blocs de construction sont stockés dans des modèles, le modèle Building Blocks.dotx contenant tous les blocs de construction intégrés.

Par conséquent, vous devez créer une macro qui parcourt chaque modèle que vous avez ouvert et récupère les informations de bloc de construction de chacun d’eux. Prenons l’exemple suivant:

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

Pour de meilleurs résultats, ouvrez un tout nouveau document; c’est ce document dans lequel la macro place les informations du bloc de construction. Avant d’exécuter la macro, le Building Blocks.dotx doit être ouvert en affichant l’onglet Insertion du ruban, puis en cliquant sur Quick Parts | Organisateur de blocs de construction. L’affichage de l’organisateur de blocs de construction de cette manière garantit que Word ouvre le modèle Building Blocks.dotx.

Lorsque vous exécutez la macro, elle parcourt chaque modèle, chaque type de bloc fonctionnel du modèle, chaque catégorie de chaque type et enfin chaque bloc fonctionnel de chaque catégorie. Le nom, la description et la valeur réelle de chaque Building Block sont imprimés.

Cela peut ne pas donner un résultat aussi « joli » que vous pourriez l’espérer car les Building Blocks sont bien plus que du texte – ils peuvent aussi être des programmes à part entière. Cela peut entraîner des caractères géniaux dans le document créé par la macro.

Il y a aussi quelque chose d’intéressant à noter à propos de cette macro. Notez que la boucle extérieure parcourt chaque modèle à l’aide d’une boucle For Each.

C’est plutôt normal et banal pour travailler sur des collections dans le modèle d’objet Word. Cependant, les trois boucles imbriquées dans cette boucle externe utilisent une boucle For Next car les collections impliquées (BuildingBlockTypes, Categories et BuildingBlocks) ne prennent pas en charge les boucles For Each.

_Note: _

Si vous souhaitez savoir comment utiliser les macros décrites sur cette page (ou sur toute autre page des sites WordTips), j’ai préparé une page spéciale qui comprend des informations utiles.

lien: / wordribbon-WordTipsMacros [Cliquez ici pour ouvrir cette page spéciale dans un nouvel onglet de navigateur].

WordTips est votre source pour une formation Microsoft Word rentable.

(Microsoft Word est le logiciel de traitement de texte le plus populaire au monde.) Cette astuce (11096) s’applique à Microsoft Word 2007, 2010, 2013, 2016, 2019 et Word dans Office 365.