(Wie) Kann man (bei Word) Fußnoten über mehrere Ebenen machen?

2 Antworten

Hallo,

das ist nicht ganz so einfach, aber es geht. Da der Aufwand dafür aber nahezu unmenschlich ist, wenn du mehrere aphabetisch nummerierte Fußnoten benutzt, würde ich dir empfehlen, das per VBA erledigen zu lassen.

Dazu gehst du folgendermaßen vor:

Schalte zunächst die Entwicklertools-Symbolleiste ein. Wie das geht, kannst du hier nachlesen.

http://praxistipps.chip.de/microsoft-office-entwicklertools-in-registerkarten-anzeigen_12403

Wechsle dann in die Registerkarte Entwicklertools und klicke ganz links auf die Schaltfläche Visual Basic. Das öffnet den VBA-Editor.

Füge jetzt ein normales Modul ein, indem du oben auf Einfügen Modul klickst. Dadurch sollte automatisch ein neues Modul mit dem Namen Modul1 eingefügt werden.

Hier wechselst du jetzt in den rechten Bereich und fügst diesen Code ein (siehe Bild 1):

Option Explicit

Sub ZweifacheFussnotenAlphabetisch()

'Code von BerchGerch

Dim strBMName As String, strAuswahl As String, strBMRoot As String, strBMExtension As String
Dim intBMExtensionCount As Integer
Dim Doc As Document: Set Doc = ActiveDocument

With Selection
.Font.Superscript = True 'Hochgestellt
Doc.Bookmarks.Add Range:=.Range, Name:="FNDocumentText" 'Textmarke einfügen
'Symbolfußnote einfügen
With Doc.Range(Start:=Doc.Content.Start, End:=Doc.Content.End)
.Footnotes.Add Range:=Selection.Range, Reference:="+"
End With
.MoveLeft Unit:=wdCharacter, Count:=1
.Font.Superscript = True 'Hochgestellt
Doc.Bookmarks.Add Range:=.Range, Name:="FNFootnoteText" 'Textmarke einfügen
Doc.Bookmarks("FNDocumentText").Select
.MoveRight Unit:=wdCharacter, Count:=1, Extend:=wdExtend
Doc.Bookmarks.Add Range:=.Range, Name:="FNSymbolPlus" 'Textmarke einfügen
.Collapse Direction:=wdCollapseEnd
.Font.Superscript = True 'Hochgestellt
'Sequenzfeld einfügen
.Fields.Add Range:=.Range, Type:=wdFieldEmpty, Text:="SEQ Fußnoten \* alphabetic ", PreserveFormatting:=True
.MoveLeft Unit:=wdCharacter, Count:=1, Extend:=wdExtend
strAuswahl = .Range.Text
strBMRoot = strAuswahl
strBMName = "fn_" & strBMRoot
If Doc.Bookmarks.Exists(strBMName) Then
Nochmal:
intBMExtensionCount = intBMExtensionCount + 1
strBMExtension = "_" & intBMExtensionCount
strBMName = "fn_" & strBMRoot & strBMExtension
If Doc.Bookmarks.Exists(strBMName) Then
GoTo Nochmal
Else
Doc.Bookmarks.Add Range:=.Range, Name:=strBMName 'Textmarke einfügen
End If
Else
Doc.Bookmarks.Add Range:=.Range, Name:=strBMName 'Textmarke einfügen
End If
Doc.Bookmarks("FNFootnoteText").Select
'Querverweis einfügen
.InsertCrossReference ReferenceType:="Textmarke", ReferenceKind:= _
wdContentText, ReferenceItem:=strBMName, InsertAsHyperlink:=True, _
IncludePosition:=False, SeparateNumbers:=False, SeparatorString:=" "
'Plus in der Fußnote ausblenden
.StartOf Unit:=wdLine
.MoveRight Unit:=wdCharacter, Count:=1, Extend:=wdExtend
.Font.Hidden = True
'Plus in der Fußnote ausblenden
Doc.Bookmarks("FNSymbolPlus").Select
.Font.Hidden = True
.Collapse Direction:=wdCollapseEnd
.MoveRight Unit:=wdWord, Count:=1
.Font.Superscript = False
.Font.Hidden = False
End With

'Textmarken wieder löschen
With Doc
.Bookmarks("FNFootnoteText").Select
Selection.EndOf Unit:=wdLine
.Bookmarks("FNDocumentText").Delete
.Bookmarks("FNFootnoteText").Delete
.Bookmarks("FNSymbolPlus").Delete
End With
Set Doc = Nothing

End Sub

Danach musst du speichern (im VBA-Editor oben auf Datei Normal speichern klicken oder einfach Strg + S drücken). Jetzt kannst du den VBA-Editor wieder verlassen.

Du hast gerade ein Makro eingefügt, das dir automatisch durchgezählte, alphabetische, hochgestellte Fußnoten generiert (a, b, c, ... z, aa, bb, cc usw.)

Damit du dieses Makro bei Bedarf schnell ausführen kannst, musst du dir noch ein Icon dafür in die Schnellzugriffsleiste von Word legen. Das geht so:

Klicke in Word auf Datei → Optionen..., um die Wordoptionen zu öffnen.

Wechsle hier links in das Modul Sybolleisten für den Schnellzugriff (→ Bild 2, Nr. 1).

Stell dann hier das Dropdownfeld Befehle auswählen auf Makros um
(→ Bild 2, Nr. 2) und wähle unten in der Liste das neue Makro (Normal.Modul1.ZweifacheFussnotenAlphabetisch) aus (→ Bild 2, Nr. 3) und klicke auf Hinzufügen (→ Bild 2, Nr. 4).

Dadurch wird dieses in den rechten Kasten verschoben. Wähle es dann im rechten Kasten an und klicke unten auf Ändern... (→ Bild 2, Nr. 5).

Es öffnet sich das Fenster Schaltfläche 'Ändern'. Hier wählst du jetzt das Symbol Aa an, wobei das kleine a hochgestellt ist (→ Bild 3, Pfeil). Unten im Feld Anzeigename gibst du noch Fußnote alphabetisch ein. Jetzt kannst du auf OK klicken. Deine Schaltfläche sollte jetzt so aussehen wie in Bild 2, Nr. 6.

Wenn du jetzt die Wordoptionen mit OK verlässt, hast du in Word ganz oben in der Schnellzugriffsleiste das Symbol Aa. Ein Klick auf dieses wird das Makro ausführen, d. h. es wird an der Stelle, an der sich dein Cursor befindet, eine alphabetische Fußnote eingefügt.

Für die nummerierten Fußnoten kannst du ganz normal die Fußnotenfunktion verwenden (Register Verweise Fußnote einfügen).

Anschließend noch ein paar Hinweise zu Arbeit mit dem Makro:

Das Makro fügt dir immer eine Symbolfußnote, die auf ein hochgestelltes Plus voreingestellt ist und ein Sequenzfeld ins Dokument ein. Gleichzeitig wird eine Textmarke auf dieses Sequenzfeld (im Regelfall mit dem Namensformat fn_Fußnotenbuchstabe) eingefügt.

Im entsprechenden Fußnotentext wird statt des Sequenzfeldes ein Querverweis auf dieses Sequenzfeld eingefügt, der dir immer den entsprechenden Buchstaben von oben anzeigt. Durch diesen Querverweis werden die Fußnoten immer automatisch durchgezählt.

Das Symbol + vor jeder alphabetischen Fußnote, das mit eingefügt werden muss, wird sowohl im Dokument- als auch im Fußnotentext ausgeblendet, so dass es nicht gedruckt wird.

Wichtig: Wenn du zwischen zwei alphabetischen Fußnoten nachträglich eine neue Fußnote einfügst, stimmt die Zählung deiner Fußnoten unten im Fußnotentext zunächst nicht, da die Querverweise noch nicht aktualisiert worden sind.

Um dies in einem Rutsch zu erledigen, einfach kurz die Druckansicht einschalten (Strg + P) drücken. Dann werden alle Querverweise im Dokument auf einmal aktualisiert und die Zählung stimmt wieder.

So, ich hoffe das hilft. Eine Rückmeldung wäre nett.

Ich habe das Makro mehrfach getestet. Es sollte also funktionieren. Bei mir tut es das jedenfalls. Dennoch erfolgt die Nutzung natürlich vollkommen auf eigene Gefahr. Ich hafte für keinerlei Schäden, die eventuell aus der Nutzung des Makros entstehen.

Gruß, BerchGerch

Woher ich das weiß:eigene Erfahrung – Ich arbeite seit 30 Jahren nahezu täglich mit Word.
Bild 1: Der VBA-Editor von Word - (Microsoft Word, Office, Fußnote) Bild 2: Die Symbolleiste für den Schnellzugriff anpassen - (Microsoft Word, Office, Fußnote) Bild 3: Ein Icon in der Schnellzugriffssymbolleiste anpassen - (Microsoft Word, Office, Fußnote)

BerchGerch  30.10.2016, 14:50
Nachtrag

Wenn du eine alphabetische Fußnote wieder löschen willst, musst du das dazugehörige + im Dokumenttext mitlöschen, sonst bleibt dir der Fußnotentext unten stehen.

Das das + ja immer ausgeblendet ist, musst du hierfür die Steuerzeichen aktivieren, falls die nicht eingeschaltet sind. Dafür einfach im Register Start in der Gruppe Absatz auf dieses Zeichen ¶ klicken. Dann wird dir auch das ausgeblendete + im Dokumenttext angezeigt und du kannst es löschen.

Und noch eine Sache: Da ich in den Code oben keine Fehlerbehandlung eingebaut habe, würdest du eine Fehlermeldung bekommen, wenn du das Makro aus Versehen ausführst, während sich dein Cursor unten im Fußnotentext befindet. Sollte dir das passieren, einfach bei der entsprechenden Fehlermeldung auf Beenden klicken.

Wenn du noch Fragen hast, melde dich bitte!

Gruß, BerchGerch

Hallo! Ich habe genau die gleich Frage und bin der obigen Anleitung gefolgt. Vielen Dank! Es hat an sich super funktioniert, nur habe ich noch folgendes Problem: In meinem Dokument müssen die über das Makro eingeügten Fußnoten auf jeder neuen Seite erneut mit "a" beginnen; d.h. auf einer Seite gibt es z.B. die Abfolge a, b, c, auf der nächsten Seite geht es aber wieder mit "a" los. Gibt es irgendeine Möglichkeit, den Code so zu modifizieren, dass das funktioniert? (Wenn es geht, bitte mit detaillierter Erklärung, denn ich habe es wirklich nur geschafft, indem ich den Anweisungen Schritt für Schritt gefolgt bin...)

Ich würde mich sehr über eine Antwort freuen und wäre dafür sehr dankbar!

Beste Grüße -


BerchGerch  26.11.2024, 16:57
Wichtiger Nachtrag

Ich habe den obigen Code noch an einer entscheidenden Stelle verbessert, daher hier noch einmal der komplette, verbesserte Code:

Option Explicit

Sub ZweifacheFussnotenAlphabetisch()

    'Code von BerchGerch, 2024

    Dim strBMName As String, strAuswahl As String, strBMRoot As String, strBMExtension As String, strSEQText As String
    Dim intBMExtensionCount As Integer, intPageFootnotesCount As Integer
    Dim rngPageFootnotesCount As Range
    Dim Doc As Document: Set Doc = ActiveDocument

    With Selection
        .Font.Superscript = True 'Hochgestellt
        Doc.Bookmarks.Add Range:=.Range, Name:="FNDocumentText" 'Textmarke einfügen
        'Symbolfußnote einfügen
        With Doc.Range(Start:=Doc.Content.Start, End:=Doc.Content.End)
            .Footnotes.Add Range:=Selection.Range, Reference:="+"
        End With
        .MoveLeft Unit:=wdCharacter, Count:=1
        .Font.Superscript = True 'Hochgestellt
        Doc.Bookmarks.Add Range:=.Range, Name:="FNFootnoteText" 'Textmarke einfügen
        Doc.Bookmarks("FNDocumentText").Select
        .MoveRight Unit:=wdCharacter, Count:=1, Extend:=wdExtend
        Doc.Bookmarks.Add Range:=.Range, Name:="FNSymbolPlus" 'Textmarke einfügen
        .Collapse Direction:=wdCollapseEnd
        .Font.Superscript = True 'Hochgestellt
        'Sequenzfeld einfügen
        Set rngPageFootnotesCount = Selection.Bookmarks("\Page").Range
        rngPageFootnotesCount.SetRange rngPageFootnotesCount.Start, Selection.Range.End
        intPageFootnotesCount = rngPageFootnotesCount.Footnotes.Count
        If intPageFootnotesCount = 1 Then
            strSEQText = "SEQ Fußnoten \* alphabetic \r1"
        Else
            strSEQText = "SEQ Fußnoten \* alphabetic"
        End If
        Set rngPageFootnotesCount = Nothing
        .Fields.Add Range:=.Range, Type:=wdFieldEmpty, Text:=strSEQText, PreserveFormatting:=True
        .MoveLeft Unit:=wdCharacter, Count:=1, Extend:=wdExtend
        strAuswahl = .Range.Text
        strBMRoot = strAuswahl
        strBMName = "fn_" & strBMRoot
        If Doc.Bookmarks.Exists(strBMName) Then
Nochmal:
            intBMExtensionCount = intBMExtensionCount + 1
            strBMExtension = "_" & intBMExtensionCount
            strBMName = "fn_" & strBMRoot & strBMExtension
            If Doc.Bookmarks.Exists(strBMName) Then
                GoTo Nochmal
            Else
                Doc.Bookmarks.Add Range:=.Range, Name:=strBMName 'Textmarke einfügen
            End If
        Else
            Doc.Bookmarks.Add Range:=.Range, Name:=strBMName 'Textmarke einfügen
        End If
        Doc.Bookmarks("FNFootnoteText").Select
        'Querverweis einfügen
        .InsertCrossReference ReferenceType:="Textmarke", ReferenceKind:= _
        wdContentText, ReferenceItem:=strBMName, InsertAsHyperlink:=True, _
        IncludePosition:=False, SeparateNumbers:=False, SeparatorString:=" "
        'Plus in der Fußnote ausblenden
        .StartOf Unit:=wdLine
        .MoveRight Unit:=wdCharacter, Count:=1, Extend:=wdExtend
        .Font.Hidden = True
        'Plus in der Fußnote ausblenden
        Doc.Bookmarks("FNSymbolPlus").Select
        .Font.Hidden = True
        .Collapse Direction:=wdCollapseEnd
         .MoveRight Unit:=wdWord, Count:=1
        .Font.Superscript = False
        .Font.Hidden = False
    End With

    'Textmarken wieder löschen
    With Doc
        .Bookmarks("FNFootnoteText").Select
        Selection.EndOf Unit:=wdLine
        .Bookmarks("FNDocumentText").Delete
        .Bookmarks("FNFootnoteText").Delete
        .Bookmarks("FNSymbolPlus").Delete
    End With
    Set Doc = Nothing

End Sub
Wichtiger Hinweis zur Handhabung des Makros

Der obige Code prüft, ob bis zu der Position auf der Seite, an der die neue Buchstaben-Fußnote eingefügt wird, sich bereits eine Buchstaben-Fußnote auf der Seite befindet und fügt dann eine neue ein.

Das hat aber einen entscheidenen Nachteil, den ich bis jetzt leider nicht beheben kann: Wenn du auf einer Seite bereits Buchstaben-Fußnoten eingefügt hast und jetzt eine neue, erste Fußnote auf der Seite einfügst, hast du auf der Seite zwei Fußnoten nacheinander, die mit a bezeichnet werden.

Das kannst du momentan leider nur manuell beheben:

  1. Markiere dazu die zweite Fußnote auf der Seite, die mit a bezeichnet wird.
  2. Drücke Umschalt + F9, um die Feldfunktion anzeigen zu lassen. Diese müsste so aussehen: { SEQ Fußnoten \* alphabetic \r1 \* MERGEFORMAT }.
  3. Lösche hier den Parameter \r1 komplett raus und drücke F9. Dadurch wird die Feldfunktion aktualisiert und die Fußnote kriegt einen neuen Buchstaben.
  4. Schalte jetzt einmal kurz über Strg + P die Druckansicht ein und drücke Esc, um gleich wieder ins Dokument zurückzukehren. Jetzt stimmen deine Buchstaben-Fußnoten wieder.

Gruß, BerchGerch

BerchGerch  26.11.2024, 15:06

Hallo,

dafür musst du anstatt dem obigen Code diesen Code nehmen; also einfach den obigen Code im VB-Editor komplett löschen und den Code von unten statt dessen einfügen. Ansonsten ist alles, wie oben beschrieben. Also, hier der neue Code:

Option Explicit

Sub ZweifacheFussnotenAlphabetisch()

    'Code von BerchGerch, 2024

    Dim strBMName As String, strAuswahl As String, strBMRoot As String, strBMExtension As String, strSEQText As String
    Dim intBMExtensionCount As Integer, intPageFootnotesCount As Integer
    Dim Doc As Document: Set Doc = ActiveDocument

    With Selection
        .Font.Superscript = True 'Hochgestellt
        Doc.Bookmarks.Add Range:=.Range, Name:="FNDocumentText" 'Textmarke einfügen
        'Symbolfußnote einfügen
        With Doc.Range(Start:=Doc.Content.Start, End:=Doc.Content.End)
            .Footnotes.Add Range:=Selection.Range, Reference:="+"
        End With
        .MoveLeft Unit:=wdCharacter, Count:=1
        .Font.Superscript = True 'Hochgestellt
        Doc.Bookmarks.Add Range:=.Range, Name:="FNFootnoteText" 'Textmarke einfügen
        Doc.Bookmarks("FNDocumentText").Select
        .MoveRight Unit:=wdCharacter, Count:=1, Extend:=wdExtend
        Doc.Bookmarks.Add Range:=.Range, Name:="FNSymbolPlus" 'Textmarke einfügen
        .Collapse Direction:=wdCollapseEnd
        .Font.Superscript = True 'Hochgestellt
        'Sequenzfeld einfügen
        intPageFootnotesCount = ActiveDocument.Bookmarks("\Page").Range.Footnotes.Count
        If intPageFootnotesCount = 1 Then
            strSEQText = "SEQ Fußnoten \* alphabetic \r1"
        Else
            strSEQText = "SEQ Fußnoten \* alphabetic"
        End If
        .Fields.Add Range:=.Range, Type:=wdFieldEmpty, Text:=strSEQText, PreserveFormatting:=True
        .MoveLeft Unit:=wdCharacter, Count:=1, Extend:=wdExtend
        strAuswahl = .Range.Text
        strBMRoot = strAuswahl
        strBMName = "fn_" & strBMRoot
        If Doc.Bookmarks.Exists(strBMName) Then
Nochmal:
            intBMExtensionCount = intBMExtensionCount + 1
            strBMExtension = "_" & intBMExtensionCount
            strBMName = "fn_" & strBMRoot & strBMExtension
            If Doc.Bookmarks.Exists(strBMName) Then
                GoTo Nochmal
            Else
                Doc.Bookmarks.Add Range:=.Range, Name:=strBMName 'Textmarke einfügen
            End If
        Else
            Doc.Bookmarks.Add Range:=.Range, Name:=strBMName 'Textmarke einfügen
        End If
        Doc.Bookmarks("FNFootnoteText").Select
        'Querverweis einfügen
        .InsertCrossReference ReferenceType:="Textmarke", ReferenceKind:= _
        wdContentText, ReferenceItem:=strBMName, InsertAsHyperlink:=True, _
        IncludePosition:=False, SeparateNumbers:=False, SeparatorString:=" "
        'Plus in der Fußnote ausblenden
        .StartOf Unit:=wdLine
        .MoveRight Unit:=wdCharacter, Count:=1, Extend:=wdExtend
        .Font.Hidden = True
        'Plus in der Fußnote ausblenden
        Doc.Bookmarks("FNSymbolPlus").Select
        .Font.Hidden = True
        .Collapse Direction:=wdCollapseEnd
         .MoveRight Unit:=wdWord, Count:=1
        .Font.Superscript = False
        .Font.Hidden = False
    End With

    'Textmarken wieder löschen
    With Doc
        .Bookmarks("FNFootnoteText").Select
        Selection.EndOf Unit:=wdLine
        .Bookmarks("FNDocumentText").Delete
        .Bookmarks("FNFootnoteText").Delete
        .Bookmarks("FNSymbolPlus").Delete
    End With
    Set Doc = Nothing

End Sub

Ich habe den Code bei mir getestet. Er sollte so funktionieren. Teste mal und gib mir bitte eine Rückmeldung.

Gruß, BerchGerch

SaraB421  26.11.2024, 13:11

... und eine kleine weitere Frage: Sind die Makros hinterher in InDesign übertragbar (der Text muss dann an den Verlag und wird dort umgewandelt)?

BerchGerch  26.11.2024, 16:18
@SaraB421

Da bin ich überfragt. Ich habe noch nie mit InDesign gearbeitet und weiß daher nicht, inwiefern dort Skript- oder VB(A)-Unterstützung möglich ist.