打印构件列表(Microsoft Word)
Karen希望打印出Word中可用的所有Building Block的列表,但似乎无法发现如何做到这一点。您可以打印出自动图文集条目的列表,但这只是您在系统上可以拥有的更大组构建块的一部分。
没有内置功能可以打印系统上的所有Building Block,但是您可以创建一个宏来访问Building Block信息。构建基块存储在模板中,而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。积木组织者。以这种方式显示Building Blocks Organizer可以确保Word打开Building Blocks.dotx模板。
执行宏时,它会逐步浏览每个模板,模板中每种构建模块的类型,每种类型中的每个类别,最后是每种类别中的每个构建块。将打印每个Building Block的名称,描述和实际值。
这可能不像您希望的那样“漂亮”,因为“构建基块”不仅仅是文本,它们也可以是成熟的程序。这可能会导致宏创建的文档中出现一些时髦的字符。
关于此宏,还有一些有趣的注意事项。请注意,外部循环使用For Each循环逐步遍历每个模板。
这对于处理Word对象模型中的集合是很正常和平凡的。但是,此外部循环中的三个嵌套循环使用For Next循环,因为所涉及的集合(BuildingBlockTypes,Category和BuildingBlocks)不支持For Each循环。
注意:
如果您想知道如何使用此页面(或_WordTips_网站上的任何其他页面)中描述的宏,我准备了一个包含有用信息的特殊页面。
_WordTips_是您进行经济有效的Microsoft Word培训的来源。
(Microsoft Word是世界上最流行的文字处理软件。)本技巧(11096)适用于Microsoft Word 2007、2010、2013、2016、2019和Office 365中的Word。