Пол пытается использовать Word VBA, чтобы вернуть номер сноски, в которой расположена точка вставки. В его случае возможно, что сноска содержит более одного абзаца. Пол интересуется, есть ли способ определить этот номер сноски в VBA.

Номер сноски можно определить с помощью свойства Index объекта сноски. Вот быстрый способ продемонстрировать, чем эта информация может быть полезна:

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

Обратите внимание, что макрос проходит через каждую сноску в документе. Если определено, что выделение (точка вставки) находится в определенной сноске, то свойство Index этой сноски используется для помещения сообщения в переменную sTemp. После завершения цикла сносок переменная sTemp отображается в окне сообщения.

Если в вашем документе много сносок, возможно, вы не захотите перебирать их все. В этом случае вы можете использовать свойство «Информация» выделения, чтобы определить, находится ли в данный момент точка вставки в сноске, следующим образом:

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

Кроме того, вы можете получить другую информацию о конкретной сноске, расширив, к каким свойствам этой сноски вы получаете доступ. Следующий макрос возвращает не только номер сноски, но также правило нумерации, стиль нумерации и начальный номер сносок:

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

_Примечание: _

Если вы хотите знать, как использовать макросы, описанные на этой странице (или на любой другой странице на сайтах WordTips), я подготовил специальную страницу, содержащую полезную информацию.

link: / wordribbon-WordTipsMacros [Щелкните здесь, чтобы открыть эту специальную страницу в новой вкладке браузера].

WordTips — ваш источник экономичного обучения работе с Microsoft Word.

(Microsoft Word — самая популярная программа для обработки текстов в мире.) Этот совет (5906) относится к Microsoft Word 2007, 2010, 2013, 2016, 2019 и Word в Office 365.