Giải nén Tên tệp BAO GỒM (Microsoft Word)
Khi làm việc với các tài liệu dài có chứa đồ họa, không có gì lạ khi sử dụng trường INCLUDEPICTURE để thực sự chèn đồ họa vào tài liệu. Nếu bạn có một số lượng lớn các trường này trong tài liệu của mình, bạn có thể muốn một cách để tạo một “danh sách nghệ thuật” bao gồm tên của các tệp đồ họa được sử dụng trong tài liệu.
Bằng cách sử dụng macro tương đối đơn giản, bạn có thể xem qua từng trường hợp của trường INCLUDEPICTURE trong tài liệu của mình và chỉ trích xuất tên của các tệp được tham chiếu. Sau đó, chúng có thể được thêm vào tài liệu mới, để khi macro được thực hiện, tài liệu mới chỉ chứa danh sách các tệp được tham chiếu trong các trường INCLUDEPICTURE. Đây là một macro sẽ thực hiện điều này:
Sub GetIncludePictures() Dim oField As Field Dim oCurrentDoc As Document Dim oNewDoc As Document Dim sFileName As String Set oCurrentDoc = ActiveDocument Set oNewDoc = Application.Documents.Add For Each oField In oCurrentDoc.Fields If oField.Type = wdFieldIncludePicture Then sFileName = Replace(oField.Code, "INCLUDEPICTURE", "") sFileName = Replace(sFileName, "MERGEFORMAT", "") sFileName = Replace(sFileName, "\*", "") sFileName = Replace(sFileName, "\d", "") sFileName = Replace(sFileName, Chr(34), "") sFileName = Replace(sFileName, "\\", "\") sFileName = Trim(sFileName) oNewDoc.Range.InsertAfter sFileName & vbCrLf End If Next oField oNewDoc.Activate Set oField = Nothing Set oCurrentDoc = Nothing Set oNewDoc = Nothing End Sub
Lưu ý việc sử dụng hàm Replace nhiều lần trong macro. Hàm này thay thế các lần xuất hiện của một chuỗi trong một chuỗi khác bằng văn bản khác. Điều đó nghe có vẻ khó hiểu, nhưng nó rất tiện dụng. Ví dụ, hãy tưởng tượng rằng bạn có một chuỗi (sMyString) có chứa các ký tự “Đây là chuỗi của tôi” và bạn sử dụng như sau:
SMyString = Replace(sMyString, "s", "X")
Điều này dẫn đến mỗi chữ “s” trong sMyString được thay thế bằng chữ hoa “X”. Kết quả là sMyString bây giờ sẽ chứa “ThiX iX my Xtring”.
Trong trường hợp macro GetIncludePictures, một số dòng chứa các hàm Replace có tác dụng xóa tất cả các ký tự không liên quan khỏi mã trường, ngoại trừ tên tệp thực của ảnh. Nếu bạn cũng muốn loại bỏ thứ gì đó khác, bạn có thể thêm nhiều dòng hơn để loại bỏ các yếu tố đó. (Ví dụ: nếu bạn muốn xóa tên đường dẫn chuẩn đến nơi lưu trữ ảnh của bạn.)
Khi macro chạy xong, thứ duy nhất trong tài liệu mới phải là tên của ảnh, như trong các ví dụ sau:
C:\mypics\picture1.tif ..\graphics\chap01\fig03.gif
Nếu bạn chỉ muốn tên tệp chứ không phải tên đường dẫn đầy đủ, bạn có thể sửa đổi macro GetIncludePictures một chút để bao gồm mã phân tích cú pháp đường dẫn. Bạn có thể thực hiện việc này bằng cách thêm phần sau vào macro, ngay sau dòng sFileName = Trim (sFileName):
While Instr(sFileName, "\") > 0 sFileName = Mid(sFileName, Instr(sFileName, "\") + 1) Wend
_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 (11777) áp dụng cho Microsoft Word 2007, 2010, 2013, 2016, 2019 và Word trong Office 365. Bạn có thể tìm thấy phiên bản của mẹo này cho giao diện menu cũ hơn của Word tại đây: