06.12.2014

Word-Fußnoten in Markdown-Text konvertieren

Wenn ein Word-Dokument als Text-Dokument exportiert wird, gehen sämtliche Fußnoten verloren. Mithilfe des folgenden Makros können Fußnoten in reinen Text umgewandelt werden. Die Fußnotenmarke wird entfernt und an deren Stelle ein Platzhalter in Form eines Markdown-Verweises [^1] mit fortlaufender Nummerierung eingefügt. Der Inhalt der fussNote wird mit vorangestellter Markdown-Definition [^1]: als neue Zeile ans Ende des Dokuments angefügt.

Sub fussNotenZuMarkdown()
    Dim fussNotenSammlung As Footnotes
    Dim fussNote As Footnote
    Dim fussNotenText As String
    Dim i As Integer
    Dim a As String

    i = 0

    ' Alle Fußnoten werden in einer Sammlung zusammengefasst
    Set fussNotenSammlung = Word.ActiveDocument.Footnotes

    ' Bearbeite jede einzelne Fußnote
    For Each fussNote In fussNotenSammlung

        ' Generiere fortlaufende Nummerierung
        i = i + 1
        a = i

        fussNotenText = fussNote.Range.Text

        ' Springe zum Dokumentenanfang
        Selection.HomeKey Unit:=wdStory

        ' Suche (und markiere) derzeit erste Fußnotenmarke
        With Selection.Find
            .ClearFormatting
            .Text = "^f"
            .Forward = True
            .Wrap = wdFindStop
            .Execute
        End With

        ' Lösche die aktuelle Fußnote
        fussNote.Delete

        ' Überschreibe Markierung mit fortlaufend nummeriertem Text-Platzhalter
        Selection.Text = "[^" + a + "]"

        ' Schreibe am Ende des Dokuments neue Zeile mit Fußnotenreferenz
        Selection.EndKey Unit:=wdStory
        Selection.TypeText Text:= vbCrLf + "[^" + a + "]: " + fussNotenText

        ' Rückgängig(Strg+Z)-Verlauf leeren
        ActiveDocument.UndoClear
    Next
End Sub

Der Quelltext ist eine Abwandlung von http://www.hilfdirselbst.ch/foren/Verweise_in_normalen_Text_umwandeln_P527071.html#527071.