{"id":1735,"date":"2013-01-31T19:00:39","date_gmt":"2013-01-31T17:00:39","guid":{"rendered":"http:\/\/www.kastenmaier.de\/?p=1735"},"modified":"2018-05-02T07:54:33","modified_gmt":"2018-05-02T06:54:33","slug":"vba-word-tabulator-statt-leerzeichen-vor-fussnotentext","status":"publish","type":"post","link":"https:\/\/www.kastenmaier.de\/?p=1735","title":{"rendered":"VBA &#8211; Word: Tabulator statt Leerzeichen vor Fu\u00dfnotentext"},"content":{"rendered":"<h1>Beschreibung<\/h1>\n<p>Es ist schon extrem \u00e4rgerlich, dass Word nicht die M\u00f6glichkeit bietet, dass Trennzeichen zwischen dem Fu\u00dfnotenzeichen und dem Fu\u00dfnotentext einzustellen. Mit dem standardm\u00e4\u00dfig verwendeten Leerzeichen lassen sich Fu\u00dfnoten &#8211; vor allem, wenn sie \u00fcber mehrere Zeilen gehen &#8211; schlie\u00dflich nicht vern\u00fcnftig formatieren.\u00a0Da mir bisher keine automatische L\u00f6sung untergekommen ist, statt des Leerzeichens ein Tabulatorzeichen einzusetzen, habe ich mir das unten stehende VBA-Makro f\u00fcr Word gebastelt.<!--more--><\/p>\n<p>Das Makro durchl\u00e4uft alle Fu\u00dfnoten des aktiven Dokuments und ersetzt das erw\u00e4hnte Leerzeichen durch ein Tabulatorzeichen. Damit bei erneutem Ausf\u00fchren des Makros nichts kaputt gemacht wird, wird zudem kontrolliert, ob nicht bereits ein Tabulatorzeichen verwendet wird.<\/p>\n<p>Der eingestellte h\u00e4ngende Einzug von 0,35cm sorgt daf\u00fcr, dass der Text ab der zweiten Zeile vern\u00fcnftig einger\u00fcckt wird. Der Wert f\u00fcr den Einzug kann \u00fcber die Konstante am Anfang der Funktion angepasst werden:<\/p>\n<pre class=\"brush: vb; gutter: true\">Const EINZUG As Single = 0.35<\/pre>\n<p>Beim Anpassen des Wertes muss beachtet werden, dass statt des in Deutschland \u00fcblichen Kommas ein Punkt verwendet wird.<\/p>\n<p>Auf Fehlerbehandlungsroutinen habe ich bei diesem Makro gr\u00f6\u00dftenteils verzichtet, evtl. liefere ich das sp\u00e4ter noch nach.<\/p>\n<h1>Sourcecode<\/h1>\n<pre class=\"brush: vb; gutter: true\">Sub addTabBeforeFootnotetext()\r\n    If Len(ActiveDocument.Name) &lt;&gt; 0 Then\r\n        &#039; Einzug auf 0,35cm setzen\r\n        Const EINZUG As Single = 0.35\r\n\r\n        Dim fnFussnote As Footnote\r\n        Dim sLinkerEinzug As Single\r\n\r\n        &#039; Wert des Einzugs in Punkte umwandeln\r\n        sLinkerEinzug = CentimetersToPoints(EINZUG)\r\n\r\n        &#039; Bildschirmaktualisierung abschalten\r\n        Application.ScreenUpdating = False\r\n\r\n        &#039; alle Fu\u00dfnoten im aktiven Dokument anpassen\r\n        For Each fnFussnote In ActiveDocument.Footnotes\r\n            fnFussnote.Range.Select     &#039; Fu\u00dfnote selektieren\r\n\r\n            &#039; Gegebenenfalls vorhandenen Tabulator am Anfang l\u00f6schen um zwei aufeinander folgende Tabulatorzeichen zu verhindern\r\n            If StrComp(Selection.Characters(1), vbTab) = 0 Then\r\n                Selection.MoveLeft          &#039; An den Anfang der Fu\u00dfnote gehen\r\n                Call Selection.MoveRight(Unit:=wdCharacter, Count:=1, Extend:=wdExtend) &#039; Tab markieren\r\n                Selection.Delete\r\n            Else\r\n                Selection.MoveLeft          &#039; An den Anfang der Fu\u00dfnote gehen\r\n            End If\r\n\r\n            Call Selection.MoveLeft(Unit:=wdCharacter, Count:=1, Extend:=wdExtend) &#039; Zeichen vor dem Fu\u00dfnotentext markieren\r\n\r\n            &#039; Pr\u00fcfen, ob das markierte Zeichen ein Leerzeichen ist\r\n            If StrComp(Selection.Characters(1), &quot; &quot;) = 0 Then\r\n                Selection.TypeBackspace\r\n            End If\r\n\r\n            &#039; Tab nach Fu\u00dfnotenzeichen einf\u00fcgen\r\n            fnFussnote.Range.InsertBefore (vbTab)\r\n        Next\r\n\r\n        With ActiveDocument.Styles(wdStyleFootnoteText).ParagraphFormat\r\n            .TabStops.ClearAll                              &#039; alle vorhandenen Tabs in Fu\u00dfnoten l\u00f6schen\r\n            Call .TabStops.Add(Position:=sLinkerEinzug)     &#039; Tab setzen\r\n            .LeftIndent = sLinkerEinzug                     &#039; Einzug f\u00fcr alle Zeilen setzen\r\n            .FirstLineIndent = sLinkerEinzug * -1           &#039; erste Zeile ohne Einzug\r\n        End With\r\n\r\n        &#039; Bildschirmaktualisierung einschalten\r\n        Application.ScreenUpdating = True\r\n    End If\r\nEnd Sub<\/pre>\n","protected":false},"excerpt":{"rendered":"<p>Beschreibung Es ist schon extrem \u00e4rgerlich, dass Word nicht die M\u00f6glichkeit bietet, dass Trennzeichen zwischen dem Fu\u00dfnotenzeichen und dem Fu\u00dfnotentext einzustellen. Mit dem standardm\u00e4\u00dfig verwendeten Leerzeichen lassen sich Fu\u00dfnoten &#8211; vor allem, wenn sie \u00fcber mehrere Zeilen gehen &#8211; schlie\u00dflich nicht vern\u00fcnftig formatieren.\u00a0Da mir bisher keine automatische L\u00f6sung untergekommen ist, statt des Leerzeichens ein Tabulatorzeichen [&hellip;]<\/p>\n","protected":false},"author":3,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"ngg_post_thumbnail":0,"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[29,19],"tags":[49,37,38],"class_list":["post-1735","post","type-post","status-publish","format-standard","hentry","category-startseite","category-vba-word","tag-programmieren","tag-vba","tag-word"],"jetpack_featured_media_url":"","jetpack_shortlink":"https:\/\/wp.me\/p5LyzC-rZ","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/www.kastenmaier.de\/index.php?rest_route=\/wp\/v2\/posts\/1735","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.kastenmaier.de\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.kastenmaier.de\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.kastenmaier.de\/index.php?rest_route=\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/www.kastenmaier.de\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1735"}],"version-history":[{"count":12,"href":"https:\/\/www.kastenmaier.de\/index.php?rest_route=\/wp\/v2\/posts\/1735\/revisions"}],"predecessor-version":[{"id":1754,"href":"https:\/\/www.kastenmaier.de\/index.php?rest_route=\/wp\/v2\/posts\/1735\/revisions\/1754"}],"wp:attachment":[{"href":"https:\/\/www.kastenmaier.de\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1735"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.kastenmaier.de\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=1735"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.kastenmaier.de\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=1735"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}