Ihre Browserversion ist veraltet. Wir empfehlen, Ihren Browser auf die neueste Version zu aktualisieren.

oerttel.net

/
Hoppelformatierung bereinigen

Hoppelformatierung bereinigen

Veröffentlicht am 01.04.2018

Wer zugelieferte Texte oder Texte aus dem Internet weiterverarbeit kennt das Problem, dass diese diverse Satzmängel enthalten können: z. B. Mehrfach-Leerzeichen, -Tabsprünge und -Absatzmarken. Diese zu beseitigen, kann mühsam werden, auch wenn man dazu »Suchen und Ersetzen« verwendet, und die Funktion AutoFormat ist nicht zu Unrecht in den Tiefen der UI-Anpassung versteckt.

Die folgenden Makros verwenden auch die Funktionen von »Suchen und Ersetzen«, nur sind sie bereits so vorbereitet, dass nicht erst nach der passenden Steuerung des Ersetzen-Dialogs gefahndet werden muss.

Wichtig sind zunächst einige Hilfsroutinen, auf die alle Makros zugreifen und die unbedingt mitkopiert werden müssen.

Die Ersetzen-Funktion, die von anderen Makros aufgerufen wird:

Sub ChangeChar(SuchZeichen, ErsatzZeichen, FontSuch, BooleFormat, BooleWildCard)

Dim Steuerz, Feld As Boolean

Feld = ActiveWindow.View.ShowFieldCodes

ActiveWindow.View.ShowFieldCodes = False  

Steuerz = ActiveWindow.ActivePane.View.ShowAll

ActiveWindow.ActivePane.View.ShowAll = False

       

With Selection.Find

    .ClearFormatting

    .Replacement.ClearFormatting

    .Text = SuchZeichen

    .Font.Name = FontSuch

    .Font.Hidden = False

    .Replacement.Text = ErsatzZeichen

    .Forward = True

    .Wrap = wdFindStop

    .Format = BooleFormat

    .MatchCase = False

    .MatchWholeWord = False

    .MatchWildcards = BooleWildCard

    .MatchSoundsLike = False

    .MatchAllWordForms = False

    .Execute Replace:=wdReplaceAll

End With

         

ActiveWindow.ActivePane.View.ShowAll = Steuerz

ActiveWindow.View.ShowFieldCodes = Feld

 End Sub

Wenn die Makros ohne Markierung aufgerufen werden, kommt eine Sicherheitsabfrage:

Function KeineSelection()

KeineSelection = 0

ksPrompt = "Diese Funktion sollte sicherheitshalber nur innerhalb eines markierten Textteils vorgenommen werden. Trotzdem ausführen?"

ksTitle = "Kein Text markiert"

KeineSelection = MsgBox(ksPrompt, vbYesNo, ksTitle)

End Function


Nun die eigentlichen Austauschmakros:

Mehrfach-Leerzeichen auf eines reduzieren

Sub MehrfachBlanksRaus()

MirDochEgal = vbYes

If (Selection.Start = Selection.End) Then MirDochEgal = KeineSelection

If MirDochEgal = vbYes Then Call ChangeChar(" {2;}", " ", "", False, True)

End Sub


Für Einrückungen missbrauchte führende Leerzeichen entfernen

Sub FuehrendeBlanksRaus()

MirDochEgal = vbYes

If (Selection.Start = Selection.End) Then MirDochEgal = KeineSelection

If MirDochEgal = vbYes Then

    Call ChangeChar(" {2;}", " ", "", False, True)

    Call ChangeChar("^p ", "^p", "", False, False)

End If

End Sub


Für Einrückungen missbrauchte führende Leerzeichen in Tabsprünge umwandeln

Die Anzahl der Leerzeichen pro Tabsprung können Sie in einer Abfrage bestimmen.

Sub FuehrendeBlanksZuTabs()

MirDochEgal = vbYes

If (Selection.Start = Selection.End) Then MirDochEgal = KeineSelection

If MirDochEgal = vbYes Then

    bPrompt = "Wieviele Leerzeichen sollen zu je einem Tabsprung zusammengefasst werden?"

    bTitle = "Leerzeichenanzahl"

    bDefault = "4"

    Anzahl = InputBox(bPrompt, bTitle, bDefault)

    Call ChangeChar(" {" & Anzahl & "}", "^t", "", False, True)

    Call ChangeChar(" {2;}", " ", "", False, True)

    Call ChangeChar("^p ", "^p", "", False, False)

End If

End Sub


Mehrfach-Absatzmarken auf eine reduzieren

Sub AbsatzmarkenRaus()

MirDochEgal = vbYes

If (Selection.Start = Selection.End) Then MirDochEgal = KeineSelection

If MirDochEgal = vbYes Then

    Call ChangeChar("^13{2;}", "^13", "", False, True)

    Call ChangeChar("^p ", "^p", "", False, False)

End If

End Sub


Absatzmarken durch Leerzeichen ersetzen (Fließtext wiederherstellen)

Sub AbsatzmarkenZuFliesstext()

MirDochEgal = vbYes

If (Selection.Start = Selection.End) Then MirDochEgal = KeineSelection

If MirDochEgal = vbYes Then

    Call ChangeChar("^13{2;}", "äöüß", "", False, True)

    Call ChangeChar("^13", " ", "", False, False)

    Call ChangeChar("äöüß", "^13", "", False, False)

    Call ChangeChar(" {2;}", " ", "", False, True)

End If

End Sub


Manuelle Zeilenschaltungen durch Absatzmarken ersetzen

Sub ZeilenschaltungZuAbsatz()

MirDochEgal = vbYes

If (Selection.Start = Selection.End) Then MirDochEgal = KeineSelection

If MirDochEgal = vbYes Then Call ChangeChar("^l", "^13", "", False, False)

End Sub


Manuelle Zeilenschaltungen durch Leerschritte ersetzen 

Sub ZeilenendenZuFliesstext()

MirDochEgal = vbYes

If (Selection.Start = Selection.End) Then MirDochEgal = KeineSelection

If MirDochEgal = vbYes Then

    Call ChangeChar("^l", " ", "", False, False)

    Call ChangeChar(" {2;}", " ", "", False, True)

    If Left(Selection, 1) = " " Then Selection.Delete Unit:=wdCharacter, Count:=1

End If

End Sub


Mehrfach-Tabsprünge auf einen reduzieren (wenn Standardtabstopps durch benutzerdefinierte ersetzt werden)

Sub TabsRaus()

MirDochEgal = vbYes

If (Selection.Start = Selection.End) Then MirDochEgal = KeineSelection

If MirDochEgal = vbYes Then Call ChangeChar("^t{2;}", "^t", "", False, True)

End Sub


 

Cookie-Regelung

Diese Website verwendet Cookies, zum Speichern von Informationen auf Ihrem Computer.

Stimmen Sie dem zu?