Word Makro zeilenweise Auslesen eines Textfeldes

Knalltuete

Lieutenant
Registriert
Aug. 2006
Beiträge
523
Moin! Ich habe ein Word-Dokument mit einem Textfeld. In diesem Textfeld stehen folgende Adressdaten:

  • Straße
  • PLZ
  • Ort

Diese Daten stehen jeweils in einer eigenen Zeile.

Nun möchte ich mit einem Makro das Textfeld auswählen und den Wert aus jeder Zeile in eine eigene Variable schreiben. Ich habe nun bereits 2 Stunden die Suchmaschine meines Vertrauens beansprucht, ohne vorwärts zu kommen. Des Weiteren ist mir die Syntax die da verwendet wird einfach zu unverständlich. Ich könnte mich natürlich reinarbeiten, aber da ich soetwas mal alle 5 Jahre mal benötige macht das IMHO keinen großen Sinn.

Daher dachte ich mir.. Vielleicht hat hier jemand Ahnung und kann mir bei dem Problem helfen. Wahrscheinlich ist das für denjenigen Kindergarten :D

Aktuell kann ich die Textbox auswählen und den kompletten Text in eine Variable schreiben:

Code:
Sub GetTextFromTextBox()
    Dim strStrasse As String
    
    ' Textbox auswählen
    ActiveDocument.Shapes("Text Box 10").Select
    
    ' Text auswählen
    strStrasse = Selection.Range.Text
    
    MsgBox strStrasse
End Sub

Vielen Dank im Voraus! :)
 
Knalltuete schrieb:
Ich habe nun bereits 2 Stunden die Suchmaschine meines Vertrauens beansprucht, ohne vorwärts zu kommen.

2 Stunden, das glaub ich dir nicht ganz, Tipp für Suchbegriffe sind: VBA+string+zeilenweise.

Aber ich bin ja nicht so. Lösung wäre dann:
Code:
'var iStr stellt deinen String dar
Dim lines() as String = iStr.Split(vbcrlf) 'trennt deinen String zwischen Zeilenumbrüchen

Gibt ein Array mit den einzelnen Zeilen der Textbox.

Grüße mannitou
 
Leider habe ich die Zeit wirklich investiert, auch wenn man mir es nicht glauben mag. Jetzt komm ich mir allerding etwas blöd vor.. Ich hab anscheinend immer die falschen Suchbegriffe eingegeben. Ich hatte es z.B. so ähnlich mit "word vba text zeilenweise", "word vba text zeile für zeile", "word makro text zeilenweise" etc. und auch noch das ganze in englischer Sprache.

So wie im Beispiel hat es leider auch nicht funktioniert, daher hab ich die Split-Funktion etwas angepasst. Allerdings scheint der Split nicht zu funktionieren, da im Array nur 1 Element mit dem gesamten Text abgespeichert wird.

Code:
Sub GetTextFromTextBox()
    Dim strGesamt As String
    Dim lines() As String
    Dim text As String
    
    ' Textbox auswählen
    ActiveDocument.Shapes("Text Box 10").Select
    
    ' Text auswählen
    strGesamt = Selection.Range.text
    
    lines = Split(strGesamt, vbCrLf)
    
    text = lines(0)
    
    MsgBox text
End Sub
 
Habs gerade nachgestellt.

Word benutzt nur ein CR, also sollte die Splitfunktion so aussehen:
Code:
lines = Split(strGesamt, vbCr)
 
Zuletzt bearbeitet:
Perfekt! Das wars.. Danke für deine Hilfe! Makro läuft nun wie es soll :daumen:
 
Zurück
Oben