Zugriff auf eine Fußnotennummer in VBA (Microsoft Word)
Paul versucht, mit Word VBA die Fußnotennummer der Fußnote zurückzugeben, in der sich die Einfügemarke befindet. In seinem Fall ist es möglich, dass die Fußnote mehr als einen Absatz enthält. Paul fragt sich, ob es eine Möglichkeit gibt, diese Fußnotennummer in VBA zu bestimmen.
Mithilfe der Index-Eigenschaft eines Fußnotenobjekts kann eine Fußnotennummer ermittelt werden. Hier ist eine schnelle Möglichkeit, um zu demonstrieren, wie nützlich diese Informationen sein können:
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
Beachten Sie, dass das Makro jede Fußnote im Dokument durchläuft. Wenn festgestellt wird, dass sich die Auswahl (Einfügemarke) in einer bestimmten Fußnote befindet, wird die Index-Eigenschaft dieser Fußnote verwendet, um eine Nachricht in die Variable sTemp einzufügen. Nach dem Durchlaufen der Fußnoten wird die Variable sTemp in einem Meldungsfeld angezeigt.
Wenn Ihr Dokument viele Fußnoten enthält, möchten Sie möglicherweise nicht alle durchlaufen. In diesem Fall können Sie mithilfe der Informationseigenschaft der Auswahl auf folgende Weise bestimmen, ob sich die Einfügemarke derzeit in einer Fußnote befindet:
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
Darüber hinaus können Sie andere Informationen zu einer bestimmten Fußnote ableiten, indem Sie die Eigenschaften dieser Fußnote erweitern, auf die Sie zugreifen. Das folgende Makro gibt nicht nur die Fußnotennummer zurück, sondern auch die Nummerierungsregel, den Nummerierungsstil und die Startnummer für die Fußnoten:
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
_Hinweis: _
Wenn Sie wissen möchten, wie die auf dieser Seite (oder auf einer anderen Seite der WordTips-Websites) beschriebenen Makros verwendet werden, habe ich eine spezielle Seite vorbereitet, die hilfreiche Informationen enthält.
WordTips ist Ihre Quelle für kostengünstige Microsoft Word-Schulungen.
(Microsoft Word ist die weltweit beliebteste Textverarbeitungssoftware.) Dieser Tipp (5906) gilt für Microsoft Word 2007, 2010, 2013, 2016, 2019 und Word in Office 365.