Beschreibung
Es ist schon extrem ärgerlich, dass Word nicht die Möglichkeit bietet, dass Trennzeichen zwischen dem Fußnotenzeichen und dem Fußnotentext einzustellen. Mit dem standardmäßig verwendeten Leerzeichen lassen sich Fußnoten – vor allem, wenn sie über mehrere Zeilen gehen – schließlich nicht vernünftig formatieren. Da mir bisher keine automatische Lösung untergekommen ist, statt des Leerzeichens ein Tabulatorzeichen einzusetzen, habe ich mir das unten stehende VBA-Makro für Word gebastelt.
Das Makro durchläuft alle Fußnoten des aktiven Dokuments und ersetzt das erwähnte Leerzeichen durch ein Tabulatorzeichen. Damit bei erneutem Ausführen des Makros nichts kaputt gemacht wird, wird zudem kontrolliert, ob nicht bereits ein Tabulatorzeichen verwendet wird.
Der eingestellte hängende Einzug von 0,35cm sorgt dafür, dass der Text ab der zweiten Zeile vernünftig eingerückt wird. Der Wert für den Einzug kann über die Konstante am Anfang der Funktion angepasst werden:
Const EINZUG As Single = 0.35
Beim Anpassen des Wertes muss beachtet werden, dass statt des in Deutschland üblichen Kommas ein Punkt verwendet wird.
Auf Fehlerbehandlungsroutinen habe ich bei diesem Makro größtenteils verzichtet, evtl. liefere ich das später noch nach.
Sourcecode
Sub addTabBeforeFootnotetext() If Len(ActiveDocument.Name) <> 0 Then ' Einzug auf 0,35cm setzen Const EINZUG As Single = 0.35 Dim fnFussnote As Footnote Dim sLinkerEinzug As Single ' Wert des Einzugs in Punkte umwandeln sLinkerEinzug = CentimetersToPoints(EINZUG) ' Bildschirmaktualisierung abschalten Application.ScreenUpdating = False ' alle Fußnoten im aktiven Dokument anpassen For Each fnFussnote In ActiveDocument.Footnotes fnFussnote.Range.Select ' Fußnote selektieren ' Gegebenenfalls vorhandenen Tabulator am Anfang löschen um zwei aufeinander folgende Tabulatorzeichen zu verhindern If StrComp(Selection.Characters(1), vbTab) = 0 Then Selection.MoveLeft ' An den Anfang der Fußnote gehen Call Selection.MoveRight(Unit:=wdCharacter, Count:=1, Extend:=wdExtend) ' Tab markieren Selection.Delete Else Selection.MoveLeft ' An den Anfang der Fußnote gehen End If Call Selection.MoveLeft(Unit:=wdCharacter, Count:=1, Extend:=wdExtend) ' Zeichen vor dem Fußnotentext markieren ' Prüfen, ob das markierte Zeichen ein Leerzeichen ist If StrComp(Selection.Characters(1), " ") = 0 Then Selection.TypeBackspace End If ' Tab nach Fußnotenzeichen einfügen fnFussnote.Range.InsertBefore (vbTab) Next With ActiveDocument.Styles(wdStyleFootnoteText).ParagraphFormat .TabStops.ClearAll ' alle vorhandenen Tabs in Fußnoten löschen Call .TabStops.Add(Position:=sLinkerEinzug) ' Tab setzen .LeftIndent = sLinkerEinzug ' Einzug für alle Zeilen setzen .FirstLineIndent = sLinkerEinzug * -1 ' erste Zeile ohne Einzug End With ' Bildschirmaktualisierung einschalten Application.ScreenUpdating = True End If End Sub
Ein Gedanke zu „VBA – Word: Tabulator statt Leerzeichen vor Fußnotentext“
Kommentare sind geschlossen.