Reguläre Ausdrücke in Winword.

Ich habe einige Adreßlisten in Winword, die ich gerne per Excel-Textassistent oder in ähnlicher Weise in Access importieren möchte. Dabei erkennt keine der von mir ausprobierten Methoden das Format der Daten richtig. Die Daten liegen in einem Listenformat vor, in dem ein Datensatz mehrere Zeilen umfaßt. Teilweise sind die Daten durch Komma oder Leerzeichen getrennt. Wie kann ich die Daten in ein datenbankverträgliches Format wandeln?

Da praktisch alle Importfunktionen oder -Assistenten von Datenbanken einen Datensatz in einer Zeile voraussetzen, sollte das Ihr erster Konvertierungsschritt sein. Eine Zeile entspricht in Winword nicht einer Druckzeile sondern einem Absatz. Da Daten in Listenform, wie auch bei Ihnen, meist mehrere Absätze belegen, müssen Sie diese vorher konvertieren.
Für die Konvertierung der Datensätze bietet Winword eine wenig beachtete Funktion, die aber sehr mächtig ist: Den Mustervergleich. Dieser ermöglicht Ihnen das komplexe Suchen und Ersetzen innerhalb von Winword-Dokumenten.
Trotz der Mächtigkeit hat die Option einen kleinen Nachteil. Das Suchen nach Absatzmarken unterstützt sie nicht, so daß mit einem normalen Such- und Ersetzdurchgang erst einmal eine neue Marke zu setzen ist. Das Beispiel nutzt dazu das Dollarzeichen ($), welches in Ihren Daten sonst nicht vorkommen darf. Alternativ können Sie selbstverständlich auch ein anderes seltenes Zeichen benutzen. Der erste Vorgang mit dem Befehl Bearbeiten – Ersetzen sieht dementsprechend wie folgt aus:

Suchen nach: ^a
Ersetzen durch: $^a
Mit Mustervergleich: deaktiviert
Das Zeichen ^a steht dabei für die Absatzmarke von Winword. Danach können Sie die Datensätze in eine Zeile konvertieren. Im Beispiel besteht ein Datensatz aus vier Absätzen:
Suchen nach:  (*$)?(*$)?(*$)?(*$)
Ersetzen durch: \1^t\2^t\3^t\4
Mit Mustervergleich: aktiviert
An dieser Stelle ist es Zeit die sogenannten Stellvertreterzeichen zu beschreiben. Dazu sehen Sie sich am besten die Tabelle an.

((Mike: Bitte als Kasten extra setzen))



Die Klammern verwenden Sie, um Suchkriterien sowie Text zu gruppieren und die Reihenfolge der Auswertung festzulegen. Eine Suche nach "" liefert beispielsweise "werden" und "würden". Sie können außerdem das Stellvertreterzeichen \n verwenden, um das Suchergebnis in einer anderen Reihenfolge anzuordnen. Wenn Sie im Feld Suchen den Ausdruck (*$)(*$) und im Feld Ersetzen die Stellvertreterzeichen \2 \1 eingeben, stellt Winword die beiden Absätze um.
Die Beispielsuche benutzt die Klammern, um die Absätze zu gruppieren. Die Absätze sind alle Zeichen * bis zum Absatzende (selbstdefiniertes $). Danach folgt eine Absatzmarke, die mangels eigenen Zeichen das Fragezeichen ? repräsentiert. Insgesamt sind es vier Zeilen und damit vier Klammern. Die letzte Absatzendemarke ist nicht zu ersetzen, deshalb fehlt das letzte Fragezeichen. Im Feld Ersetzen repräsentieren die Zeichen \1 bis \4 die Klammergruppen, also die Absätze. Den Tabulator fügt das Zeichen ^t ein.
Nach diesen beiden Durchläufen sollte jeweils ein Datensatz mit Tabulatoren getrennt erscheinen. Da aber noch nicht alle Felder mit Tabulatoren getrennt sind, folgt noch ein letzter Schritt: Das Ersetzen der Feldtrennzeichen durch Tabulatoren. In einer Listendarstellung sind das meist mehrere Leerzeichen, die letzte Ersetzfunktion lautet dementsprechend:
Suchen nach: Leerzeichen{2;}
Ersetzen durch: ^t
Mit Mustervergleich: aktiviert
Wahrscheinlich müssen Sie dieses Beispiel mehr oder weniger stark an Ihre Bedürfnisse anpassen. Im Zweifelsfall sollten Sie mit den Stellvertreterzeichen ein wenig herumspielen, bis die Konvertierung auch bei Ihnen klappt. Um den Vorgang für weitere Dokumente zu automatisieren, zeichnen Sie einen gesamten Konvertierungslauf in einem Makro auf.