Vladimir biết rằng anh ta có thể đặt tên tệp của tài liệu vào tiêu đề của trang. Tuy nhiên, điều anh ta muốn là chỉ có năm ký tự cuối cùng của tên tệp (không bao gồm phần mở rộng tên tệp) xuất hiện trong tiêu đề. Anh ấy đang tìm cách tốt nhất để hoàn thành nhiệm vụ.

Cách duy nhất để làm điều này là sử dụng macro; không có chức năng tích hợp trong Word để hoàn thành nhiệm vụ. Macro cần xác định tên tệp, lấy các ký tự mong muốn, sau đó nhét vào tiêu đề. Tuy nhiên, có những biến chứng tiềm ẩn với một thứ có vẻ đơn giản như vậy. Ví dụ, điều gì sẽ xảy ra nếu tài liệu chưa được lưu và do đó chưa có tên tệp? Điều gì sẽ xảy ra nếu tài liệu đã được lưu, nhưng có ít hơn năm ký tự trong tên tệp?

Macro phải làm gì nếu đã có thứ gì đó trong tiêu đề?

Nó phải làm gì nếu người dùng đang xem tài liệu ở dạng xem không hiển thị tiêu đề?

Để đối phó với những câu hỏi như vậy, vĩ mô cần đưa ra một số giả định.

Đối với ví dụ này, chúng tôi sẽ giả định rằng macro chỉ nên thay thế bất kỳ tiêu đề hiện có nào bằng phần mong muốn của tên tệp. Hơn nữa, macro có thể chuyển chế độ xem sang chế độ xem Bố trí in để tiêu đề dễ làm việc. Đây là kết quả:

Sub PartFilenameInHeader()

Dim sName As String     Dim J As Long

sName = ActiveDocument.Name     J = InStrRev(sName, ".")

If J > 0 Then         sName = Left(sName, J - 1)

If Len(sName) > 5 Then             sName = Right(sName, 5)

End If

If ActiveWindow.View.SplitSpecial <> wdPaneNone Then             ActiveWindow.Panes(2).Close         End If         If ActiveWindow.ActivePane.View.Type = wdNormalView Or ActiveWindow. _           ActivePane.View.Type = wdOutlineView Then             ActiveWindow.ActivePane.View.Type = wdPrintView         End If         ActiveWindow.ActivePane.View.SeekView = wdSeekCurrentPageHeader         Selection.WholeStory         Selection.Delete         Selection.TypeText Text:=sName         ActiveWindow.ActivePane.View.SeekView = wdSeekMainDocument     Else         MsgBox "Document has no filename extension."

End If End Sub

Trước tiên, macro sẽ kiểm tra để đảm bảo rằng tài liệu có tên tệp thực (từ thuộc tính .Name của đối tượng ActiveDocument). Nếu vậy, nó kéo năm (hoặc ít hơn) ký tự từ tên tệp. Nó kiểm tra để đảm bảo rằng không có nhiều ngăn được mở và tài liệu đang ở dạng xem Bố trí In. Sau đó, nó chọn bất cứ thứ gì hiện có trong tiêu đề và thay thế nó bằng các ký tự mong muốn từ tên tệp.

Hiểu rằng macro nên được chạy một lần sau khi lưu tài liệu và một lần nữa nếu bạn đã từng lưu tài liệu bằng một tên tệp khác.

_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 (13316) áp dụng cho Microsoft Word 2007, 2010, 2013, 2016, 2019 và Word trong Office 365.