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.