Доступ к номеру сноски в VBA (Microsoft Word)
Пол пытается использовать 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.