Platzieren von Textfeldtext in einem Arbeitsblatt (Microsoft Excel)
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: