version=1.0.0
vdate=20.10.2015
fname=udf_wordwrap.bas
ns=%NAMESPACE%
fpath=/vba/functions
====== [VBA] wordwrap() ======
//Mittels wordwrap() können längere Texte umgebrochen werden, ohne dass die Wörter zerstückelt werden//
==Version %%version%% - %%vdate%%==
{{%%fname%%|Download %%fname%% (V-%%version%%)}}
===== Definition =====
''string = wordwrap(string, long [,eWrapParams [,long]])''
Public Function wordwrap( _
ByVal iText As String, _
ByVal iMaxLen As Long, _
Optional ByVal iParams As eWrapParams = ewwDefault, _
Optional ByVal iBreak As String = vbCrLf _
) As Variant
***iText** Der Text, der zerlegt werden soll
***iMaxLen** Maxiale Zeilenlänge
***iParams** Settings zur Funktion. Siehe Enum [[#enumerator_ewrapparams|eWrapParams]]. Die Parameter sind komulierbar
***iBreak** Trennzeichen. Normalerweise ein Zeilenumbruch (vbCrLf)
==== Return ====
EIn String oder ein Stringarray. Je nach eWrapParams.
==== Enumerator eWrapParams ====
Public Enum eWrapParams
ewwDefault = 0
ewwReturnArray = 2 ^ 0 'Gibt ein Array anstelle eiens Strings zurück. Der Parameter iBreak wird ignoriert
ewwCutLongWords = 2 ^ 1 'Zerschneidet überlange Wörter
ewwRemoveBreaks = 2 ^ 2 'Bestehende Zeilnumbrüche im Originaltext werden entfernt
End Enum
===== Beispiele =====
{{section>:snippets#vba_print_r&noheader&firstseconly}}
==== Standartanwendung ====
text = "Seit heute wird der Fahrplan im Bahnhof Zürich auf einem 19 Meter breiten LED-Bildschirm angezeigt. Je 15 Quadratmeter aber sind für Werbung reserviert."
Debug.Print wordwrap(text, 25)Seit heute wird der
Fahrplan im Bahnhof
Zürich auf einem 19 Meter
breiten LED-Bildschirm
angezeigt. Je 15
Quadratmeter aber sind
für Werbung reserviert.
==== Rückgabe als Array ====
text = "Seit heute wird der Fahrplan im Bahnhof Zürich auf einem 19 Meter breiten LED-Bildschirm angezeigt. Je 15 Quadratmeter aber sind für Werbung reserviert."
print_r wordwrap(text, 25, ewwReturnArray) (
[0] => 'Seit heute wird der'
[1] => 'Fahrplan im Bahnhof'
[2] => 'Zürich auf einem 19 Meter'
[3] => 'breiten LED-Bildschirm'
[4] => 'angezeigt. Je 15'
[5] => 'Quadratmeter aber sind'
[6] => 'für Werbung reserviert.'
)
==== Wörter die Länger als die erlabute Zeilenlänge sind ====
Standart. Das zu lange Wort wird nicht zerstückelt
text = "Die Autobahnbrückenspezialbeschilderung ist falsch"
Debug.Print wordwrap(text, 25)Die
Autobahnbrückenspezialbeschilderung
ist falsch
Das Wort zerstückeln
text = "Die Autobahnbrückenspezialbeschilderung ist falsch"
Debug.Print wordwrap(text, 25, ewwCutLongWords)Die
Autobahnbrückenspezialbes
childerung ist falsch
Und das noch kombiniert mit der Array-Ausgabe
text = "Die Autobahnbrückenspezialbeschilderung ist falsch"
print_r wordwrap(text, 25, ewwCutLongWords + ewwReturnArray) (
[0] => 'Die'
[1] => 'Autobahnbrückenspezialbes'
[2] => 'childerung ist falsch'
)
==== Text mit Zeilenumbruch ====
Nehmen wir mal ein Text, der Bereits Zeilenumbrüche hat. Diese Sollen natürlich erhalten bleiben
text = " Ausgetrocknetes Flussbett." & vbCrLf & "Die Töss führt diesen Oktober so gut wie kein Wasser."
Debug.Print wordwrap(text, 20)Ausgetrocknetes
Flussbett.
Die Töss führt
diesen Oktober so
gut wie kein Wasser.
Oder der Zeilenumbruch wird entfernt
text = " Ausgetrocknetes Flussbett." & vbCrLf & "Die Töss führt diesen Oktober so gut wie kein Wasser."
Debug.Print wordwrap(text, 20, ewwRemoveBreaks)Ausgetrocknetes
Flussbett. Die Töss
führt diesen Oktober
so gut wie kein
Wasser.
===== Code =====