Am 14. September 2017 haben wir eine überarbeitete Fassung unserer Datenschutzrichtlinie veröffentlicht. Wenn Sie video2brain.com weiterhin nutzen, erklären Sie sich mit diesem überarbeiteten Dokument einverstanden. Bitte lesen Sie es deshalb sorgfältig durch.

Excel 2016 VBA für Profis

Textlänge ermitteln

LinkedIn Learning kostenlos und unverbindlich testen!

Jetzt testen Alle Abonnements anzeigen
Um die Länge von Texten zu ermitteln, stellt VBA die Len-Funktion bereit. Sie zählt die Anzahl der enthaltenen Zeichen, nicht aber deren "metrische" Länge in einer bestimmten Schriftart und -größe.

Transkript

Die Len-Funktion, also die Länge, ist wahrscheinlich nicht die häufigste Funktion, die eingesetzt wird, aber mit Sicherheit die am häufigsten missverstandene. Sie misst nicht die metrische Länge, also die echte Breite eines Textes in Zentimetern oder Pixel oder Punkt, sondern sie zählt schlicht nur die Anzahl der Zeichen. Trotzdem ist sie durchaus wichtig, ich werde sie mal da oben einfügen. Also die Testprozedur dazu heißt dann entsprechend auch ehrlich: "AnzahlZeichenMessen()" und mit "debug.Print" kann ich mit der "Len" (Abkürzung von length, Länge), mit der Len-Funktion dann beispielsweise die erste Konstante ausmessen. Und nach dem "Speichern" und "Debuggen" "Kompilieren" mit F5 ermitteln, dass dort 15 Zeichen enthalten sind. Das zweite Beispiel mit F5 sind 27 Zeichen. Und das ist schön zu wissen, aber im Normalfall belanglos. Aber es gibt Gelegenheiten wo ich Texte kürzen möchte. Es sind seltener die Listenfelder, die erlauben relativ viel Text und kriegen dann Rollbalken, aber häufiger Registerkarten. Auch Registerkarten in diesem Registersteuerelement werden freiwillig breiter, wenn der Inhalt mehr Text ist, werden sie breiter, breiter und breiter und irgendwann kriegen sie so ein Paar aus Pfeilen oder Rechts-links-Dreiecken, die dafür sorgen, dass man die Registerlaschen überhaupt noch sehen und hin- und herschieben kann. Das ist ähnlich wie hier unten bei Excel, wenn das zu viele werden und die nicht mehr in den sichtbaren Bereich passen. Ich simuliere das mal grade. Dann entstehen diese Registerlaschen. Hier sind sie sehr deutlich in der Länge begrenzt. Die normalen Registerlaschen in einem Userform sind das nicht. Und damit mir das nicht genau passiert, zu lange Texte, die können ja mal flexibel aus irgendeinem Inhalt kommen, machen das Ding unbenutzbar, möchte ich die kürzen können. Das heißt, ich brauche eine Funktion, die in der Lage ist, mir einen Text entweder in voller Länge oder mit maximal, ich sage mal, mit 20 Zeichen zurückzugeben. Diese Funktion werde ich mir hier basteln, also "function", nennen wir die mal "TextBegrenzt". Die kriegt einen Parameter, nämlich "(strInhalt as String)", wo der Text reinkommt und der Rückgabewert ist auch ein String, sodass in allen Fällen ein Text zurückkommt, entweder der komplette oder einer mit maximal, das muss ich dann festlegen, sagen wir 20 Zeichen. Und dann kann ich es prüfen: Wenn die Länge von diesem "strInhalt" größer als meine vorgegebene Grenze ist, sagen wir mal "20", dann passiert was "Else", "End If", andernfalls kann ich einfach "TextBegrenzt" direkt zurückgeben, was ich da oben als Parameter erhalten habe. Der spannende Punkt ist hier oben. Was passiert wenn er länger als 20 Zeichen ist? Also, "TextBegrenzt=left", dann kürze ich ihn und zwar das, was ich bekommen habe, auf 20 Zeichen, und hänge dann, damit es deutlicher wird, noch drei Pünktchen dran. "Speichern" und Kompiliercheck und dann können wir das ja mal hier unten testen. Oder machen wir eine eigene Prozedur, das ist immer bequemer, wenn es mehrfache Tests gibt. Also, "TexteKuerzen()" und dann rufe ich mit "debug.Print" "TextBegrenzt" auf und übergebe die erste Variable und die zweite und wir können auch ruhig die beiden Dateinamen noch dranhängen, diesen und den nächsten. Das ist bequemer, wenn man das in so einer Sub-Prozedur macht als unten im Direktbereich. "Speichern", Kompiliercheck und dann werden Sie jetzt sehen, ich habe es auf 20 Zeichen begrenzt. Wenn ich das mit F5 ausführe, einige werden begrenzt. Das kann aber schon mal schief gehen, wenn ich das jetzt zum Beispiel auf 14 Zeichen begrenzen würde, das sind hier 15, dann würde ein Zeichen abgeschnitten und dafür drei Pünktchen drangehängt. Deswegen mache ich das durchaus so, dass ich, wenn ich auf 20 Zeichen prüfe, trotzdem 18 abschneide, damit mit Sicherheit drei Zeichen fehlen, mindestens drei. Sie werden also sehen, das wird sich jetzt hier ein klein bisschen ändern, nochmal mit F5 einfach mittendrin abgeschnitten. Also die Len-Funktion prüft die Anzahl der Zeichen und dient dazu, meistens dann ausgehend von dieser Länge, irgendwas abzukürzen mit der Left-Funktion zusammen.

Excel 2016 VBA für Profis

Nutzen Sie die Möglichkeiten der Programmiersprache VBA in Excel 2016, um eigene Dialoge zu erstellen, auf andere Arbeitsmappen zuzugreifen und wichtige Funktionen einzusetzen.

5 Std. 52 min (55 Videos)
Derzeit sind keine Feedbacks vorhanden...
 
Hersteller:
Software:
Exklusiv für Abo-Kunden
Erscheinungsdatum:25.01.2017

Dieser Online-Kurs ist als Download und als Streaming-Video verfügbar. Die gute Nachricht: Sie müssen sich nicht entscheiden - sobald Sie das Training erwerben, erhalten Sie Zugang zu beiden Optionen!

Der Download ermöglicht Ihnen die Offline-Nutzung des Trainings und bietet die Vorteile einer benutzerfreundlichen Abspielumgebung. Wenn Sie an verschiedenen Computern arbeiten, oder nicht den ganzen Kurs auf einmal herunterladen möchten, loggen Sie sich auf dieser Seite ein, um alle Videos des Trainings als Streaming-Video anzusehen.

Wir hoffen, dass Sie viel Freude und Erfolg mit diesem Video-Training haben werden. Falls Sie irgendwelche Fragen haben, zögern Sie nicht uns zu kontaktieren!