Карен хотела бы распечатать список всех строительных блоков, доступных в Word, но не может понять, как это сделать. Вы можете распечатать список записей автотекста, но это лишь подмножество большей группы строительных блоков, которые могут быть в системе.

Нет встроенной возможности для печати всех стандартных блоков в системе, но вы можете создать макрос для доступа к информации о стандартных блоках. Стандартные блоки хранятся в шаблонах, причем шаблон Building Blocks.dotx содержит все встроенные стандартные блоки.

Следовательно, вам необходимо создать макрос, который проходит через каждый открытый шаблон и извлекает информацию о строительных блоках из каждого из них. Рассмотрим следующий пример:

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

Для достижения наилучших результатов откройте новый документ; именно в этот документ макрос помещает информацию о строительных блоках. Перед выполнением макроса необходимо открыть Building Blocks.dotx, отобразив вкладку «Вставка» на ленте, а затем щелкнув «Быстрые детали» | Организатор строительных блоков. Отображение организатора стандартных блоков таким образом гарантирует, что Word откроет шаблон Building Blocks.dotx.

Когда вы выполняете макрос, он проходит через каждый шаблон, через каждый тип стандартного блока в шаблоне, через каждую категорию в каждом типе и, наконец, через каждый стандартный блок в каждой категории. Для каждого стандартного блока печатается имя, описание и фактическое значение.

Это может не дать такого «красивого» результата, как вы могли бы надеяться, потому что Building Blocks — это гораздо больше, чем текст — они также могут быть полноценными программами. Это может привести к появлению некоторых фанковых символов в документе, созданном макросом.

Об этом макросе есть еще кое-что интересное. Обратите внимание, что внешний цикл проходит через каждый шаблон, используя цикл For Each.

Это довольно нормально и обыденно для работы с коллекциями в объектной модели Word. Однако три вложенных цикла внутри этого внешнего цикла используют цикл For Next, поскольку задействованные коллекции (BuildingBlockTypes, Categories и BuildingBlocks) не поддерживают циклы For Each.

_Примечание: _

Если вы хотите знать, как использовать макросы, описанные на этой странице (или на любой другой странице на сайтах WordTips), я подготовил специальную страницу, содержащую полезную информацию.

link: / wordribbon-WordTipsMacros [Щелкните здесь, чтобы открыть эту специальную страницу в новой вкладке браузера].

WordTips — ваш источник экономичного обучения работе с Microsoft Word.

(Microsoft Word — самая популярная программа для обработки текстов в мире.) Этот совет (11096) относится к Microsoft Word 2007, 2010, 2013, 2016, 2019 и Word в Office 365.