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.