Impresión de una lista de bloques de creación (Microsoft Word)
A Karen le gustaría imprimir una lista de todos los Building Blocks disponibles en Word, pero parece que no puede descubrir cómo hacerlo. Puede imprimir una lista de entradas de Autotexto, pero eso es solo un subconjunto del grupo más grande de Building Blocks que podría tener en un sistema.
No hay capacidad incorporada para imprimir todos los Building Blocks en un sistema, pero puede crear una macro para acceder a la información del Building Block. Los Building Blocks se almacenan en plantillas, y la plantilla Building Blocks.dotx contiene todos los Building Blocks integrados.
Por lo tanto, debe crear una macro que recorra cada plantilla que tenga abierta y obtenga la información de los bloques de construcción de cada una de ellas. Considere el siguiente ejemplo:
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
Para obtener los mejores resultados, abra un documento nuevo; es en este documento en el que la macro coloca la información del bloque de creación. Antes de ejecutar la macro, Building Blocks.dotx debe abrirse mostrando la pestaña Insertar de la cinta y luego haciendo clic en Quick Parts | Organizador de bloques de construcción. Mostrar el Organizador de Building Blocks de esta manera asegura que Word abre la plantilla Building Blocks.dotx.
Cuando ejecuta la macro, recorre cada plantilla, cada tipo de Building Block en la plantilla, a través de cada categoría en cada tipo y finalmente a través de cada Building Block en cada categoría. Se imprime el nombre, la descripción y el valor real de cada Building Block.
Puede que esto no dé un resultado tan «bonito» como cabría esperar porque los Building Blocks son mucho más que texto; también pueden ser programas completos. Esto puede resultar en algunos caracteres extravagantes en el documento creado por la macro.
También hay algo más interesante que destacar sobre esta macro. Tenga en cuenta que el bucle exterior recorre cada plantilla utilizando un bucle For Each.
Esto es bastante normal y mundano para trabajar con colecciones en el modelo de objetos de Word. Sin embargo, los tres bucles anidados dentro de este bucle externo usan un bucle For Next porque las colecciones involucradas (BuildingBlockTypes, Categorías y BuildingBlocks) no admiten bucles For Each.
_Nota: _
Si desea saber cómo usar las macros descritas en esta página (o en cualquier otra página de los sitios WordTips), he preparado una página especial que incluye información útil.
link: / wordribbon-WordTipsMacros [Haga clic aquí para abrir esa página especial en una nueva pestaña del navegador]
.
WordTips es su fuente de formación rentable en Microsoft Word.
(Microsoft Word es el software de procesamiento de texto más popular del mundo). Este consejo (11096) se aplica a Microsoft Word 2007, 2010, 2013, 2016, 2019 y Word en Office 365.