Печать списка строительных блоков (Microsoft Word)
Карен хотела бы распечатать список всех строительных блоков, доступных в 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.