Mit Excel können Sie alle Arten von Grafikobjekten in Ihrem Arbeitsblatt platzieren. Eine Art von Grafikobjekt enthält tatsächlich Text – ein Textfeld.

Wenn ein Arbeitsblatt einige Textfelder enthält, fragen Sie sich möglicherweise, ob es eine Möglichkeit gibt, den Text aus jedem Textfeld zu extrahieren und im Arbeitsblatt selbst zu platzieren.

Es gibt keinen Befehl, dies zu tun; Sie müssen stattdessen ein Makro verwenden. Das folgende Makro durchläuft jedes Textfeld in einem Arbeitsblatt und führt die gewünschte Extraktion durch:

Sub ExtractText()

Dim shp As Shape     Dim sLoc As String

For Each shp In ActiveSheet.Shapes         With shp             If Left(.Name, 8) = "Text Box" Then                 sLoc = .TopLeftCell.Address                 Do Until Range(sLoc) = ""

sLoc = Range(sLoc).Offset(1, 0).Address                 Loop                 Range(sLoc) =.TextFrame.Characters.Text                 .Delete             End If         End With     Next End Sub

Da Excel alle grafischen Formen in der Shapes-Auflistung speichert, können Sie die Auflistung schrittweise durchlaufen und festlegen, mit welchen Formen Sie arbeiten möchten. In diesem Fall werden die ersten acht Zeichen des Formnamens überprüft. Nur wenn der Name mit „Textfeld“ beginnt, betrachtet das Makro die Form als Textfeld, aus dem Text extrahiert werden kann.

Anstatt nach dem Wortlaut „Textfeld“ im Namen zu suchen, könnte das Makro auch prüfen, welche Art von Form berücksichtigt wird. Wenn Sie dies vorziehen, ersetzen Sie einfach die Testlinie (falls links …​) durch die folgende Testlinie:

If shp.Type = msoTextBox Then

Die Variable sLoc wird zum Speichern des Speicherorts des Textfelds verwendet, das in der Eigenschaft .TopLeftCell enthalten ist. Eine Do-Schleife wird dann verwendet, um sicherzustellen, dass die Zelle, auf die die Adresse zeigt, leer ist. (Dies verhindert, dass vorhandene Inhalte der Zelle überschrieben werden.) Wenn sie nicht leer sind, wird die Adresse zur nächsten Zelle in der Spalte „inkrementiert“.

Wenn die Adresse einer leeren Zelle ermittelt wurde, wird der Text des Textfelds in der Zelle gespeichert. Die .Delete-Methode wird dann verwendet, um das eigentliche Textfeld zu entfernen.

_Hinweis: _

Wenn Sie wissen möchten, wie die auf dieser Seite (oder auf einer anderen Seite der ExcelTips-Websites) beschriebenen Makros verwendet werden, habe ich eine spezielle Seite vorbereitet, die hilfreiche Informationen enthält.

ExcelTips ist Ihre Quelle für kostengünstige Microsoft Excel-Schulungen.

Dieser Tipp (11631) gilt für Microsoft Excel 2007, 2010, 2013, 2016, 2019 und Excel in Office 365. Eine Version dieses Tipps für die ältere Menüoberfläche von Excel finden Sie hier: