Tìm kiểu không sử dụng (Microsoft Word)
Khả năng tạo và quản lý kiểu là một trong những tính năng mạnh của Word. Kiểu cho phép bạn nhanh chóng và dễ dàng áp dụng định dạng nhất quán trong toàn bộ tài liệu của mình và cập nhật định dạng đó khi nhu cầu của bạn thay đổi.
Word cung cấp khá nhiều kiểu cài sẵn (được xác định trước) và bạn có thể thêm nhiều kiểu khác khi nhu cầu của bạn ra lệnh. Tại một số thời điểm, bạn có thể muốn xác định kiểu nào không được sử dụng trong tài liệu. Danh sách này sau đó có thể được sử dụng để xác định những kiểu bạn có thể dễ dàng xóa, đơn giản vì chúng không còn cần thiết nữa.
Không có cách nào thực chất để tạo danh sách kiểu không sử dụng trong Word.
Thay vào đó, bạn cần tạo một macro để thực hiện công việc cho bạn. Bạn có thể nghĩ rằng việc tạo một macro như vậy sẽ là một nhiệm vụ đơn giản khi xem xét kiểu nào mà Word tin rằng đang sử dụng, sau đó so sánh những kiểu đó với kiểu đã được xác định. Vấn đề với cách tiếp cận này là thuộc tính InUse của VBA (áp dụng cho các đối tượng Kiểu) được sử dụng cho một số mục đích. Định nghĩa chính thức cho thuộc tính InUse là True nếu một trong hai điều kiện sau được đáp ứng:
-
Kiểu là kiểu dựng sẵn đã được sửa đổi hoặc áp dụng trong tài liệu.
-
Kiểu là kiểu do người dùng xác định đã được tạo trong tài liệu.
Điều đó có nghĩa là thuộc tính InUse không cho biết một kiểu có thực sự được sử dụng trong tài liệu hay không. Bạn có thể làm điều gì đó với định nghĩa của một kiểu mà không thực sự áp dụng nó và kiểu đó sẽ được gắn cờ là ‘đang sử dụng’ mặc dù không có bất kỳ văn bản nào trong tài liệu thực sự sử dụng kiểu đó.
Tuy nhiên, có thể tạo danh sách các kiểu không được sử dụng bằng cách sử dụng cả thuộc tính InBuilt và InUse trong macro. Macro VBA sau sử dụng cách tiếp cận này:
Sub CreateStyleList() Dim docThis As Document Dim styItem As Style Dim sBuiltIn(499) As String Dim iStyBICount As Integer Dim sUserDef(499) As String Dim iStyUDCount As Integer Dim sInUse(499) As String Dim iStyIUCount As Integer Dim iParCount As Integer Dim J As Integer, K As Integer Dim sParStyle As String Dim bInUse As Boolean ' Ref the active document Set docThis = ActiveDocument ' Collect all styles being used iStyIUCount = 0 iParCount = docThis.Paragraphs.Count iParOut = 0 For J = 1 To iParCount sParStyle = docThis.Paragraphs(J).Style For K = 1 To iStyIUCount If sParStyle = sInUse(K) Then Exit For Next K If K = iStyIUCount + 1 Then iStyIUCount = K sInUse(iStyIUCount) = sParStyle End If Next J iStyBICount = 0 iStyUDCount = 0 ' Check out styles that are "in use" For Each styItem In docThis.Styles 'see if in those being used bInUse = False For J = 1 To iStyIUCount If styItem.NameLocal = sInUse(J) Then bInUse = True Next J 'Add to those not in use If Not bInUse Then If styItem.BuiltIn Then iStyBICount = iStyBICount + 1 sBuiltIn(iStyBICount) = styItem.NameLocal Else iStyUDCount = iStyUDCount + 1 sUserDef(iStyUDCount) = styItem.NameLocal End If End If Next styItem 'Now create the output document Documents.Add Selection.TypeText "Styles In Use" Selection.TypeParagraph For J = 1 To iStyIUCount Selection.TypeText sInUse(J) Selection.TypeParagraph Next J Selection.TypeParagraph Selection.TypeParagraph Selection.TypeText "Built-in Styles Not In Use" Selection.TypeParagraph For J = 1 To iStyIUCount Selection.TypeText sBuiltIn(J) Selection.TypeParagraph Next J Selection.TypeParagraph Selection.TypeParagraph Selection.TypeText "User-defined Styles Not In Use" Selection.TypeParagraph For J = 1 To iStyIUCount Selection.TypeText sUserDef(J) Selection.TypeParagraph Next J Selection.TypeParagraph Selection.TypeParagraph End Sub
Trước tiên, macro kiểm tra mọi đoạn văn trong tài liệu để xác định tên của các kiểu thực sự đang được sử dụng trong tài liệu. Thông tin này được lưu trữ trong mảng sInUse. Sau đó, macro bắt đầu xem qua danh sách mà Word cho là đang sử dụng – đây là những kiểu thuộc bộ sưu tập Kiểu. Nếu kiểu không có trong mảng sInUse, thì kiểu đó sẽ được thêm vào mảng sBuiltIn (cho kiểu dựng sẵn) hoặc mảng sUserDef (cho kiểu do người dùng xác định). Khi các phép so sánh được thực hiện, một tài liệu mới được tạo ra liệt kê các kết quả.
_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 (1488) áp dụng cho Microsoft Word 97, 2000, 2002 và 2003.