Karen muốn in ra danh sách tất cả các Khối xây dựng có sẵn trong Word, nhưng dường như không thể tìm ra cách thực hiện. Bạn có thể in ra danh sách các mục nhập Văn bản tự động, nhưng đó chỉ là một tập hợp con của nhóm Khối xây dựng lớn hơn mà bạn có thể có trên hệ thống.

Không có khả năng tích hợp để in tất cả các Khối tòa nhà trên một hệ thống, nhưng bạn có thể tạo macro để truy cập thông tin Khối tòa nhà. Khối tòa nhà được lưu trữ trong các mẫu, với mẫu Building Blocks.dotx chứa tất cả các Khối tòa nhà được tích hợp sẵn.

Do đó, bạn cần tạo một macro đi qua từng mẫu mà bạn đã mở và lấy thông tin khối xây dựng từ mỗi mẫu. Hãy xem xét ví dụ sau:

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

Để có kết quả tốt nhất, hãy mở một tài liệu hoàn toàn mới; đó là tài liệu này mà macro đặt thông tin về khối xây dựng. Trước khi thực thi macro, Building Blocks.dotx nên được mở bằng cách hiển thị tab Chèn của ruy-băng, sau đó bấm vào Phần nhanh | Xây dựng khối tổ chức. Hiển thị Trình tổ chức Khối xây dựng theo cách này đảm bảo rằng Word sẽ mở mẫu Khối xây dựng.dotx.

Khi bạn thực thi macro, macro sẽ đi qua từng mẫu, qua từng loại Khối xây dựng trong mẫu, qua từng danh mục trong mỗi loại và cuối cùng là qua từng Khối xây dựng trong mỗi danh mục. Tên, mô tả và giá trị thực tế cho mỗi Khối xây dựng được in.

Điều này có thể không mang lại kết quả “đẹp” như bạn có thể hy vọng bởi vì Khối xây dựng không chỉ là văn bản — chúng cũng có thể là những chương trình chính thức. Điều này có thể dẫn đến một số ký tự thú vị trong tài liệu được tạo bởi macro.

Cũng có một số điều thú vị khác cần lưu ý về macro này. Lưu ý rằng vòng lặp bên ngoài bước qua từng mẫu bằng vòng lặp Cho Mỗi.

Điều này khá bình thường và nhàm chán khi làm việc thông qua các bộ sưu tập trong mô hình đối tượng Word. Tuy nhiên, ba vòng lặp lồng nhau trong vòng lặp bên ngoài này sử dụng vòng lặp For Next vì các bộ sưu tập liên quan (BuildingBlockTypes, Category và BuildingBlocks) không hỗ trợ cho mỗi vòng lặp.

_Lưu ý: _

Nếu bạn muốn biết cách sử dụng các macro được mô tả trên trang này (hoặc trên bất kỳ trang nào khác trên các trang WordTips), tôi đã chuẩn bị một trang đặc biệt bao gồm thông tin hữu ích.

WordTips là nguồn của bạn để đào tạo Microsoft Word hiệu quả về chi phí.

(Microsoft Word là phần mềm xử lý văn bản phổ biến nhất trên thế giới.) Mẹo này (11096) áp dụng cho Microsoft Word 2007, 2010, 2013, 2016, 2019 và Word trong Office 365.