Dieses Makro wandelt Fußnoten, die Sie im Fließtext an den entsprechenden Textstellen markiert haben, automatisch in echte Word-Fußnoten um. Die Fußnotennummern werden automatisch vergeben und referenziert, und jede Fußnote ist in Word verlinkt, sodass Nutzende hin und her springen können.

Der Anfang einer Fußnote wird durch das Zeichen {FN: gekennzeichnet, das Ende durch } - beides im Fließtext ohne Anführungszeichen.

Beispiel:

Lorum voluptua. {FN: ICC-01/09-02/11; Hervorhebung} Bei vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, kein Meer takimata sanctus est Lorem ipsum dolor sit amet. {FN: ICC-01/09-02/11; Betonung}

Tipp

Zwischen der Fußnote und dem referenzierten Wort oder Satz darf kein Leerzeichen stehen, da sonst dieses Leerzeichen bei der späteren Fußnotennummer und dem referenzierten Satz oder Wort verbleibt.

Verwendete Formatvorlagen

Es werden die Standard-Word-Stile verwendet. Für abweichende Änderungen in der Darstellung der Fußnote selbst ist dies die Formatvorlage „Fußnotentext“. Für eine individuelle Anpassung der Fußnotennummer muss die Formatvorlage „Fußnotentext“ im Briefkopf angepasst werden.

Codebeispiel

Sub AutoOpen() 

Dim OpenStrg As String 
Dim CloseStrg As String 
Dim myRange As Range 
Dim StartPos As Long 
Dim EndPos As Long 

OpenStrg = "{FN:" 
CloseStrg = "}" 

StartPos = InStr(1, ActiveDocument.Range.Text, OpenStrg, vbTextCompare) - 1 

Do Until StartPos = -1 
	Set myRange = ActiveDocument.Range 
	EndPos = InStr(StartPos, ActiveDocument.Range.Text, CloseStrg, vbTextCompare)
	myRange.SetRange Start:=StartPos, End:=EndPos 

	ActiveDocument.Footnotes.Add Range:=myRange, Text:=Mid(myRange.Text, Len(OpenStrg) + 1, Len(myRange.Text) - Len(CloseStrg) - Len(OpenStrg)) 

	myRange.Text = "" 
	StartPos = InStr(StartPos, ActiveDocument.Range.Text, OpenStrg,vbTextCompare) - 1 

Loop 
	
End Sub

Hinweis: Es gibt Einschränkungen in der Funktionsweise des Makros, wenn das Dokument Funktionsfelder (zB Inhaltsverzeichnisse) oder anklickbare URLs (“::url”) enthält. Eine Alternative dazu wird unten gezeigt.

Codebeispiel für Dokumente mit Funktionsfeldern und/oder anklickbaren URLs

Wenn Ihr Dokument neben Fußnoten auch Funktionsfelder wie ein Inhaltsverzeichnis oder anklickbare Links (“::url”) enthalten soll, ist es notwendig, ein entsprechend angepasstes Makro zu verwenden. Im Folgenden stellen wir Ihnen einen Beispielcode zur Verfügung:

Sub AutoOpen()

Dim OpenStrg As String
Dim CloseStrg As String
Dim myRange As Range
Dim myPara As Paragraph
Dim StartPos As Long
Dim EndPos As Long

OpenStrg = "{FN:"
CloseStrg = "}"

For Each myPara In ActiveDocument.Paragraphs
StartPos = InStr(1, myPara.Range.Text, OpenStrg, vbTextCompare) - 1
Do Until StartPos = -1
Set myRange = myPara.Range
EndPos = InStr(StartPos, myPara.Range, CloseStrg, vbTextCompare)
myRange.SetRange Start:=myRange.Start + StartPos, End:=myRange.Start + EndPos
ActiveDocument.Footnotes.Add Range:=myRange, Text:=Mid(myRange.Text, Len(OpenStrg) + 1, Len(myRange.Text) - Len(CloseStrg) - Len(OpenStrg))
myRange.Text = ""
StartPos = InStr(StartPos, myPara.Range, OpenStrg, vbTextCompare) - 1
Loop

Next

End Sub

Hinweis: Da das Makro jeden Absatz einzeln durchsucht und Fußnoten findet und erstellt, ist es wichtig, dass in einem Absatz immer nur Fußnoten ODER Funktionsfelder oder Hyperlinks (“::url”) vorhanden sind. Ist dies nicht der Fall, können Anzeigeprobleme auftreten. Außerdem ist darauf zu achten, dass die Markierung einer Fußnote “{FN:…} immer innerhalb eines Absatzes und nicht über mehrere Absätze hinweg erfolgt.

Code zum Vorbereiten von Fußnoten für den Import

Wenn Sie einen Text importieren möchten, der bereits Fußnoten enthält, und diese beim Export wieder als solche anzeigen möchten, können Sie hierfür auch ein Makro verwenden. Das folgende Makro konvertiert Ihre Fußnoten in das oben beschriebene Format (“{FN:…}”). So können Sie umfangreiche Texte mit Fußnoten passend aufbereiten.

Sub Re_FN_UPdated_3()
    Dim FtNt As Footnote
    Dim FNTxt
    
    For Each FtNt In ActiveDocument.Footnotes
        With FtNt.Reference
        .Font.Superscript = False
            FNTxt = FtNt.Range.Text
            If Asc(Left(FNTxt, 1)) = "2" Or Asc(Left(FNTxt, 1)) = "9" Then
                FNTxt = Right(FNTxt, Len(FNTxt) - 1)
                If Asc(Left(FNTxt, 1)) = "9" Then
                    FNTxt = Right(FNTxt, Len(FNTxt) - 1)
                    .Text = "{FN:" & FNTxt & "}"
            
                Else
                    .Text = "{FN:" & FNTxt & "}"
                End If
            Else
                .Text = "{FN:" & FtNt.Range.Text & "}"
            End If
            
        End With
    Next

End Sub

Um die Ausdrücke beim Export wieder in Fußnoten umzuwandeln, können Sie wieder das erste Makro verwenden!

Makro ausführen: siehe So fügen Sie ein Word-Makro ein und führen es aus.