Paul đang cố gắng sử dụng Word VBA để trả về số chú thích của chú thích cuối trang có điểm chèn. Trong trường hợp của anh ấy, có thể phần chú thích chứa nhiều hơn một đoạn văn. Paul tự hỏi liệu có cách nào để xác định số chú thích này trong VBA không.

Có thể xác định số lượng chú thích bằng cách sử dụng thuộc tính Index của đối tượng chú thích cuối trang. Đây là một cách nhanh chóng để chứng minh thông tin này có thể hữu ích như thế nào:

Sub GetFootnoteNumber()

Dim f As Footnote     Dim sTemp As String

sTemp = "The insertion point is not in a footnote"

For Each f In ActiveDocument.Footnotes         If Selection.InRange(f.Range) Then             sTemp = "The insertion point is in footnote " & f.Index         End If     Next     MsgBox sTemp End Sub

Lưu ý rằng macro bước qua từng chú thích cuối trang trong tài liệu. Nếu xác định được rằng lựa chọn (điểm chèn) nằm trong một chú thích cụ thể, thì thuộc tính Index của chú thích cuối trang đó được sử dụng để đưa một thông báo vào biến sTemp. Sau khi thực hiện xong việc lặp qua các chú thích, biến sTemp sẽ được hiển thị trong một hộp thông báo.

Nếu bạn có nhiều chú thích cuối trang trong tài liệu của mình, bạn có thể không muốn lặp lại tất cả chúng. Trong trường hợp đó, bạn có thể sử dụng thuộc tính Thông tin của vùng lựa chọn để xác định xem điểm chèn hiện có nằm trong chú thích hay không, theo cách này:

Sub GetFootnoteNum()

Dim J As Integer     Dim sTemp As String

sTemp = "The insertion point is not in a footnote"

If Selection.Information(wdInFootnote) Then         J = Selection.Paragraphs(1).Range.Footnotes(1).Index         sTemp = "The insertion point is in footnote " & J     End If     MsgBox sTemp End Sub

Ngoài ra, bạn có thể lấy thông tin khác về một chú thích cụ thể bằng cách mở rộng các thuộc tính của chú thích đó mà bạn truy cập. Macro sau không chỉ trả về số chú thích mà còn trả về quy tắc đánh số, kiểu đánh số và số bắt đầu cho chú thích cuối trang:

Sub GetFootnoteInfo()

Dim f As Footnote     Dim sTemp As String          sTemp = "The insertion point is not in a footnote"

If Selection.Information(wdInFootnote) Then         Set f = Selection.Paragraphs(1).Range.Footnotes(1)

sTemp = "Footnote number: " & f.Index & vbCr         With f.Range.FootnoteOptions             sTemp = sTemp & "Numbering Rule: " & .NumberingRule & vbCr & _               "Numbering Style: " & .NumberStyle & vbCr & _               "Starting Number: " & .StartingNumber         End With     End If     MsgBox sTemp End Sub

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