🚀The world's best VBA AI has evolved. ExcelMaster is now an autonomous Agent.Read more →
Back to Blog

VBA Wrap Text in Excel — langen Text einpassen und die Zeile mitwachsen lassen

|

VBA Wrap Text in Excel — langen Text einpassen und die Zeile mitwachsen lassen

KurzfassungWrapText = True weist Excel an, langen Text innerhalb der Spaltenbreite auf mehrere Zeilen zu brechen, statt ihn in die nächste Zelle laufen zu lassen. Es formt die Zelle um — aber es macht die Zeile nur höher, wenn die Zeilenhöhe noch auf automatisch steht. Hat ein Makro (oder eine verbundene Zelle) eine ausdrückliche RowHeight fixiert, bricht der Text unsichtbar um und bleibt abgeschnitten. Um umbrochenen Text wirklich zu sehen, tanzen Sie den Dreischritt: feste Spaltenbreite setzen, WrapText einschalten, dann Rows.AutoFit aufrufen, damit die Zeile auf die neue Form wächst.

' Umbruch formt die Zelle um; die Zeilenhoehe muss frei sein, um ihn zu zeigen.
Columns("C").ColumnWidth = 40      ' 1) dem Text eine feste Breite zum Umbrechen geben
Range("C2:C100").WrapText = True   ' 2) langen Text auf mehrere Zeilen umbrechen
Range("C2:C100").EntireRow.AutoFit ' 3) die Zeilen an den umbrochenen Text wachsen lassen

' Wieder ausschalten:
Range("C2:C100").WrapText = False

WrapText ist der Code-Zwilling der Schaltfläche Zeilenumbruch auf der Registerkarte Start. Ohne ihn läuft eine lange Beschriftung einfach nach rechts weg, verdeckt in dem Moment, in dem die Nachbarzelle etwas enthält. Mit ihm faltet sich dieselbe Beschriftung auf zwei oder drei Zeilen und bleibt in ihrer Spalte. So viel ist von der Schaltfläche her offensichtlich. Was die Schaltfläche verbirgt — und was jedes Makro stolpern lässt, das versucht, sie zu automatisieren — ist, dass der Umbruch mit der Zeilenhöhe verstrickt ist, und dass lesbare Ausgabe bedeutet, beide zusammen zu behandeln.

Was Sie lernen

  • Das Denkmodell — WrapText formt die Zelle um; es ändert den Text nicht
  • Die eine Regel, die zählt — der Umbruch wächst die Zeile nur, wenn die Höhe auf automatisch steht
  • Die dreistufige Abfolge, die umbrochenen Text wirklich sichtbar macht (Breite, Umbruch, AutoFit)
  • WrapText gegenüber einem harten Zeilenumbruch (Chr(10) / Alt+Eingabe)
  • WrapText zurücklesen, und warum ein gemischter Bereich Null zurückgibt
  • Welche Spalten Sie umbrechen sollten und welche Sie in Ruhe lassen

Das Denkmodell: die Zelle umformen, nicht den Text bearbeiten

Den Umbruch einzuschalten rührt den Wert in der Zelle nicht an. "North America regional summary" ist davor und danach dieselbe Zeichenkette; was sich ändert, ist, wie Excel sie anordnet. Aus, wird die Zeichenkette auf einer Zeile gezeichnet, die nach rechts überläuft, bis ein Nachbar sie blockiert. An, faltet Excel sie in Zeilen, die jede in die Spaltenbreite passen, nach unten gestapelt. Denken Sie an WrapText als Änderung der Form der Box, in der der Text lebt — schmaler und höher — nicht des Textes selbst.

Diese Formänderung ist der ganze Sinn, und sie erklärt das eine, was Anfänger übersehen: Eine breitere Box braucht eine höhere Zeile, um alle Zeilen zu zeigen. Umbruch und Zeilenhöhe sind zwei Hälften derselben Idee. Sie können nicht die eine ändern und die andere ignorieren und erwarten, dass das Ergebnis richtig aussieht.

Die wichtigste Regel: Umbruch wächst die Zeile nur bei freier Höhe

Hier ist der Fehler hinter fast jeder Meldung „ich habe WrapText gesetzt, aber nichts bricht um". WrapText = True faltet den Text intern, aber die Zeile wird nur höher, um diese zusätzlichen Zeilen freizugeben, wenn die Zeilenhöhe auf automatisch steht. Hat irgendetwas die Höhe bereits fixiert, behält Excel diese Höhe und schneidet die umbrochenen Zeilen außer Sicht:

Rows(2).RowHeight = 15         ' ein Makro hat die Hoehe frueher fixiert...
Range("C2").WrapText = True    ' Text bricht intern um, aber die Zeile bleibt 15pt - abgeschnitten

Zwei Dinge fixieren die Höhe häufig: ein Makro, das RowHeight auf eine Zahl gesetzt hat, und — das hinterhältige — eine verbundene Zelle, weil Rows.AutoFit sich weigert, eine Zeile zu dimensionieren, die eine enthält (siehe AutoFit). Die Lösung ist, die Höhe auf automatisch zu lassen und AutoFit sie messen zu lassen, oder, wenn Sie wirklich verbundene Zellen brauchen, die RowHeight selbst zu berechnen und zu setzen. Die Regel zum Merken: WrapText = True formt die Zelle um, aber irgendetwas muss die Zeile noch hoch genug machen, um sie zu zeigen.

Die dreistufige Abfolge, die wirklich funktioniert

Weil Umbruch und Höhe verknüpft sind, ist lesbare Ausgabe ein geordneter Dreischritt — und die Reihenfolge zählt:

Columns("C").ColumnWidth = 40        ' 1) eine FESTE Breite - der Text braucht etwas zum Umbrechen
Range("C2:C100").WrapText = True     ' 2) den Umbruch einschalten
Range("C2:C100").EntireRow.AutoFit   ' 3) die Zeilen an die neue umbrochene Form wachsen lassen

Schritt eins ist der Teil, den man überspringt. Das Zeilen-AutoFit kann eine Höhe erst berechnen, wenn die Spaltenbreite feststeht — der Text muss wissen, wie breit er sein darf, bevor er entscheiden kann, wie viele Zeilen er braucht. Wenn Sie die Spaltenbreite und die Zeilenhöhe automatisch anpassen, streiten die beiden: Eine breitere Spalte lässt den Text auf weniger Zeilen passen, was die Höhe ändert, und Sie erhalten ein instabiles Ergebnis. Fixieren Sie also zuerst die Breite (passen Sie sie nicht automatisch an), dann umbrechen, dann die Höhe automatisch anpassen. Machen Sie die drei in dieser Reihenfolge, und die Ausgabe stimmt jedes Mal.

WrapText gegenüber einem harten Zeilenumbruch

Es gibt zwei verschiedene Wege, wie Text auf mehreren Zeilen landet, und sie zu verwechseln stiftet Verwirrung. WrapText ist ein weicher, breitengetriebener Umbruch: Excel entscheidet anhand der Spaltenbreite, wo umgebrochen wird, und die Umbrüche verschieben sich, wenn Sie die Spalte anders dimensionieren. Ein harter Zeilenumbruch ist ein Zeichen, das Sie selbst in die Zeichenkette setzen — Chr(10) in VBA oder Alt+Eingabe von Hand —, das an genau dieser Stelle einen Umbruch erzwingt, unabhängig von der Breite:

Range("C2").Value = "Line one" & Chr(10) & "Line two"   ' ein harter Umbruch im Text
Range("C2").WrapText = True                              ' noetig, damit der harte Umbruch ANGEZEIGT wird

Der Haken: Selbst ein harter Chr(10)-Umbruch zeigt sich nur als zwei Zeilen, wenn WrapText an ist — sonst zeigt Excel ein kleines Kästchen-Symbol oder fügt es zusammen. Die beiden arbeiten also zusammen: Nutzen Sie Chr(10), wenn Sie einen Umbruch an einer bestimmten Stelle wollen (ein Adressblock, eine Beschriftung über einem Wert), und verlassen Sie sich auf schlichtes WrapText, wenn Sie einfach nur lange Prosa passend falten wollen.

WrapText zurücklesen, und das Null bei gemischten Bereichen

WrapText ist eine Eigenschaft je Zelle. Lesen Sie sie auf einer einzelnen Zelle, und Sie erhalten True oder False. Lesen Sie sie auf einem Bereich, wo manche Zellen umbrechen und manche nicht, kann Excel keine einzige Antwort geben, also gibt es Null zurück:

Debug.Print Range("C2").WrapText          ' True oder False
Debug.Print Range("C2:C100").WrapText     ' Null, wenn der Bereich gemischt ist

Dieses Null ist kein Fehler — es ist Excels Art, Ihnen zu sagen, dass der Bereich uneinheitlich ist. Wenn Sie prüfen müssen, ob ein Bereich einheitlich umbrochen ist, prüfen Sie zuerst IsNull(rng.WrapText); ein Nicht-Null-Ergebnis bedeutet, dass jede Zelle übereinstimmt. In der Praxis lesen Sie es selten zurück — Sie setzen es auf einer ganzen Spalte auf einmal, was den Bereich einheitlich hält und die Frage von vornherein umgeht.

Welche Spalten Sie umbrechen sollten

Der Umbruch verdient seinen Platz auf Text-Spalten — Beschreibungen, Kommentaren, Adressen, langen Beschriftungen — wo das Falten die Spalte schmal und das Blatt lesbar hält. Auf Zahlen-Spalten ist er meist falsch: Eine umbrochene Zahl ist schwerer zu lesen, nicht leichter, und Zahlen brauchen ihn selten. Die effiziente Gewohnheit ist, WrapText auf der ganzen Spalte in einer Anweisung zu setzen (Columns("C").WrapText = True), statt Zelle für Zelle zu schleifen, und dann die Zeilen für den ganzen Block einmal automatisch anzupassen. Es je Zelle in einer Schleife zu setzen ist sowohl langsamer als auch eine häufige Quelle des oben beschriebenen Null bei gemischten Bereichen. Entscheiden Sie je Spalte, wenden Sie es einmal an, passen Sie einmal an.

Wie ExcelMaster hilft

Zeilenumbruch ist die Einstellung, die wie ein Einzeiler aussieht und dann abgeschnittene Ausgabe erzeugt, die niemand bemerkt, bis der Bericht gedruckt ist — die Zeilenhöhe wurde vorher fixiert, die Spaltenbreite wurde nie festgelegt, sodass AutoFit die falsche Form gemessen hat, oder der harte Chr(10)-Umbruch zeigt sich nie, weil der Umbruch ausgelassen wurde.

ExcelMaster lässt Sie das Ergebnis beschreiben — „brich die Beschreibungsspalte um und lass die Zeilen wachsen", „setz die Adresse auf drei Zeilen in diese Zelle" — und schreibt die Schritte in der richtigen Reihenfolge: zuerst eine feste Spaltenbreite, WrapText auf der ganzen Spalte, dann Rows.AutoFit, mit Chr(10), wo Sie einen harten Umbruch verlangt haben, und eingeschaltetem Umbruch, damit er sich zeigt. Es kennzeichnet verbundene Zellen, die die Zeile am Wachsen hindern. Sie behalten die Arbeitsmappe und den Code.

Häufig gestellte Fragen

Warum funktioniert mein VBA WrapText nicht?

Der Text bricht mit ziemlicher Sicherheit um — er zeigt sich nur nicht, weil die Zeilenhöhe fixiert ist. Die Zeilenhöhe wächst nur dann, um umbrochene Zeilen freizugeben, wenn sie auf automatisch steht. Lassen Sie die Höhe in Ruhe und rufen Sie Rows.AutoFit auf, nachdem Sie WrapText = True gesetzt haben, und sorgen Sie zuerst dafür, dass die Spalte eine feste Breite hat, damit der Text etwas zum Umbrechen hat. Ist die Zelle verbunden, dimensioniert das Zeilen-AutoFit sie gar nicht — setzen Sie die RowHeight ausdrücklich.

Wie breche ich Text um und passe die Zeilenhöhe in VBA an?

Machen Sie drei Schritte der Reihe nach: eine feste Spaltenbreite setzen (Columns("C").ColumnWidth = 40), den Umbruch einschalten (Range("C2:C100").WrapText = True), dann die Zeilen automatisch anpassen (Range("C2:C100").EntireRow.AutoFit). Die Breite zuerst zu fixieren ist entscheidend — das Zeilen-AutoFit kann die nötige Höhe erst messen, wenn der Text weiß, wie breit er sein darf.

Wie schalte ich den Zeilenumbruch in VBA aus?

Setzen Sie die Eigenschaft auf False: Range("C2:C100").WrapText = False. Wurden die Zeilen an den umbrochenen Text gewachsen, schrumpfen sie nicht von selbst zurück — rufen Sie danach erneut Rows.AutoFit auf oder setzen Sie eine ausdrückliche RowHeight, um sie auf eine einzeilige Höhe zurückzubringen.

Was ist der Unterschied zwischen WrapText und einem Chr(10)-Zeilenumbruch?

WrapText ist ein weicher, breitengetriebener Umbruch — Excel wählt anhand der Spaltenbreite, wo umgebrochen wird, und die Umbrüche verschieben sich beim Dimensionieren. Chr(10) (dasselbe wie Alt+Eingabe) ist ein harter Umbruch, den Sie an einer genauen Stelle in die Zeichenkette setzen. Ein harter Umbruch zeigt sich nur als mehrere Zeilen, wenn WrapText ebenfalls an ist, also werden die beiden meist zusammen genutzt.

Warum gibt Range.WrapText Null zurück?

Weil WrapText eine Eigenschaft je Zelle ist und der Bereich gemischt ist — manche Zellen brechen um und manche nicht, sodass Excel kein einzelnes True oder False zurückgeben kann und stattdessen Null liefert. Lesen Sie es auf einer einzelnen Zelle für eine eindeutige Antwort, oder prüfen Sie IsNull(rng.WrapText), um festzustellen, ob ein ganzer Bereich einheitlich ist. WrapText auf der ganzen Spalte auf einmal zu setzen hält es konsistent.

Getestet in

Getestet in: Excel 365 (Windows 11), VBA 7.1 — zuletzt geprüft am 10.09.2026.

Weiterführende Anleitungen: VBA AutoFit · VBA Fenster fixieren · VBA Spaltenbreite · VBA Zellen verbinden · VBA Font