Word Serienbrief mit Anrede (Header)

Serienbrief mit Anrede in Word

Mit einem Textverarbeitungsprogramm, wie Microsoft Word eines ist, lassen sich nicht nur kleine oder auch umfangreiche Texte erfassen, auch ein Serienbrief mit Anrede und anderen variablen Elementen ist kein Problem. Texte lassen sich automatisieren. Eine dieser möglichen Automatisierungen ist der so genannte Serienbrief. Das ist ein Brief, der mehr oder minder inhaltsgleich an mehrere Empfänger versendet werden soll. Das bedeutet, dass sich die einzelnen Briefe in den Adressdaten der Empfänger unterscheiden. Es können aber auch andere variable Textteile im eigentlichen Brieftext integriert werden, wie zum Beispiel eine adäquate Briefanrede. Hier sehen wir uns an, wie ein Serienbrief mit Anrede erstellt wird.

Neben dem Briefdokument wird eine Steuerdatei benötigt, in welcher Adressen und variable Textteile oder sonstige Informationen zur Steuerung der letztlichen Dokumentgenerierung gespeichert sind. Beide zusammen bilden die Grundlage für einen Serienbrief oder auch andere Dokumenttypen, die mehrfach, mit variablen Textteilen, erstellt werden sollen.

Die folgende Anleitung basiert auf Microsoft Word 2016. Die hier vorgestellten Arbeitsschritte sind auf andere Word-Versionen, wie zum Beispiel 365 übertragbar.

Aufgabenstellung: Serienbrief mit Anrede erstellen

Einen Serienbrief mit Anrede zu erstellen, wird Schritt für Schritt beschrieben. Ausgangspunkt ist ein Brief, der an den im Serienbrief zu ersetzenden Stellen Platzhalter beinhaltet. Diese sind dadurch gekennzeichnet, dass sie in spitzen Klammern notiert sind.

Der vorgestellte Beispielbrief ist sehr einfach gehalten. Als variable Inhalte haben wir die Adressen und die Briefanrede.

Beispiel für einen Serienbrief mit Anrede
Beispielbrief

Die variablen Inhalte kommen aus der oben genannten Steuerdatei, die wir noch zu erstellen haben.

Wie in der Praxis üblich, gehen wir davon aus, dass die Adressen teilweise einfache Firmenadressen ohne konkreten Ansprechpartner sind, teilweise aber auch Ansprechpartner enthalten.

Das Problem bei derart gemischten Adressdaten besteht nun darin, unerwünschte Leerzeilen im Dokument zu vermeiden. Im konkreten Fall kann der Ansprechpartner fehlen. Enthält unsere Steuerdatei keine entsprechenden Daten, würde Word eine leere Zeile für diesen produzieren. Das gilt es zu vermeiden.

Zudem muss die Briefanrede entsprechen dem Ansprechpartner dynamisch angepasst werden.

Serienbrief mit Anrede in Word

Dokument und Steuerungsdatei verbinden

Die Serienbriefdatei existiert bereits. Es handelt sich um das oben dargestellte Dokument. Im Folgenden wird eine Excel-Datei als Steuerdatei genutzt. Diese kann manuell erstellt werden oder auch das Ergebnis einer Datenbankabfrage, also dynamisch erstellt, sein.

Die Excel-Datei sei wie folgt aufgebaut. Beispielinhalte sind hier bereits eingefügt.

Firma Anrede Vorname Nachname Strasse PLZ Ort Geschlecht
XY Marketing GmbH Dr. Ignatz Müller Dorfstraße 2 49124 Georgsmarienhütte M
RIta Hauschild Hinter den Linden 13 49080 Osnabrück W
ABC Consult GmbH & Co. KG Am Bahnhof 1 49080 Osnabrück
3-Plus-Architekten Meinert Schlingmannsweg 3 49079 Osnabrück M

Im ersten Schritt verbinden wir das Briefdokument mit der Excel-Steuerdatei. Dabei übernehmen wir einfach die Adressdaten, wie sie als Spalten in der Steuerdatei angelegt sind. Wir ignorieren dabei vorerst, ob die Felder für jeden Datensatz mit Inhalt gefüllt sind. Dazu betätigen wir die Schaltfläche „Empfänger auswählen“ im Register „Sendungen“.

Empfänger auswählen
Empfänger auswählen

Wir können nun eine Empfängerliste erstellen, auswählen oder auch aus Outlook-Kontakten wählen.

Im konkreten Beispiel verwenden wir unsere Excel-Steuerdatei. Nachdem wir diese als Datenquelle ausgewählt haben, wird die Schaltfläche „Seriendruckfeld einfügen“ aktiviert.

Naiver Implementierungsansatz

Markieren wir jetzt die textuellen Platzhalter unseres Briefes und wählen die entsprechenden Datenfelder über „Seriendruckfeld einfügen“ aus, so werden die Platzhalter durch so genannte Feldvariablen ersetzt, die mit der Datenquelle, unserer Excel-Steuerdatei, verknüpft sind. Das Bildschirmfoto auf der nächsten Seite zeigt die ausgeklappte Auswahlliste mit den Feldern, die in unserer Beispiel-Steuerdatei enthalten sind.

Die Empfängerdaten sind bereits durch datengebundene Feldvariablen ersetzt. Sie sind an den doppelten Anführungszeichen, wie zum Beispiel «Firma», zu erkennen. Diese Felder werden beim Seriendruck durch die Dateninhalte der Steuerdatei ersetzt.

Die Anordnung der Datenfelder entspricht der Anordnung, die sinnvoll ist, wenn alle Datenfelder auch tatsächlich Daten enthalten. Wir wissen jedoch, dass dies nicht der Fall ist.

Serienbrieffelder einfügen
Serienbrieffelder einfügen

Fehlen die Informationen für Vor- und Nachname, darf auch eine eventuell vorhandene Anrede nicht ausgegeben werden. Fehlen alle Angaben dieser Adresszeile, produziert Word eine Leerzeile.

Wir brauchen daher Kontrolle über die Ausgabe der Datenfelder beziehungsweise von Zeilenumbrüchen (und auch trennenden Leerzeichen).

Mit Bedingungen zum richtigen Text

Die Ausgabe von Feldvariablen die keine Dateninhalte besitzen, muss unterbunden werden. Häufig liest man in Internetforen, die Lösung dieser Problematik bestehe darin, die Felder der ersten und zweiten Adresszeile direkt hintereinander im Dokument anzuordnen, ohne Leerzeichen und ohne Zeilenumbruch. Das Adressfeld hätte dann nebenstehende Gestalt.

Mit Hilfe des Regel-Assistenten soll dann geprüft werden, ob ein Ansprechpartner vorhanden ist. Wenn ja, soll hinter der Firma ein Zeilenumbruch eingefügt werden, sonst nicht. In der Tat vermeidet dies auf einfache Weise einen unnötigen Zeilenumbruch.

Unsere Beispieldaten für den Serienbrief mit Anrede sind jedoch komplexer. Es ist leicht einzusehen, dass wir auch Leerzeichen beachten müssen. Seien Anrede und Nachname gegeben, der Vorname jedoch fehlend, so darf zwischen der Anrede und dem Vornamen lediglich ein trennendes Leerzeichen ausgegeben werden. Das kann das oben stehende Konstrukt nicht leisten.

Der Ansprechpartner kann, wenn er vorhanden ist, mit und ohne Anrede oder Vorname auftreten. Wenn Daten ausgegeben werden, weil die Datenfelder mit Inhalt gefüllt sind, sind auch entsprechende Leerzeichen einzufügen. Diese dürfen jedoch nicht statisch zwischen den Datenfeldern ausgegeben werden, weil so mehrere Leerzeichen hintereinander resultieren können, wenn kein Dateninhalt vorhanden ist. Die trennenden Leerzeichen sind also bedingte Leerzeichen. Sie hängen von der Bedingung ab, dass ein Datenfeldinhalt vorhanden ist.

Der Regel-Assistent hilft uns hierbei nicht. Wir müssen den Code manuell eingeben.

Bevor wir an die Implementierung gehen, überlegen wir uns die Regeln, nach denen wir das Adressfeld generieren wollen. Das sind so genannte Wenn-Dann-Regeln. Wir gehen dabei von gültigen Adressdatensätzen aus, bei denen mindestens die Firma, der Ansprechpartner oder sogar beide Angaben in den Steuerdaten passend vorhanden sind.

Um uns Klarheit über die zu implementierenden Regeln zu verschaffen, notieren wir sie vorerst rein schematisch:

Die obige Notation stellt einen Pseudocode dar. Tatsächlich ist die Syntax von Word alles andere als schön oder auch nur gut zu lesen. Code wird mit Formatierung (im Sinne von Platzierung der Elemente) gemischt.

Code für Adressfeld
Code für Adressfeld

Mittels der Tastenkombination ALT+F9 wird in die Codeansicht geschaltet. Mit CTRL+F9 kann ein neuer Ausdruck eingefügt werden. Unter macOS ist das die Tastenkombination CMD+F9. Das ist ein geschweiftes Klammerpaar, in welches der entsprechende Code eingetragen wird. Zum Einfügen von Datenfeldern kann weiterhin die Schaltfläche zum Einfügen der Serienbrieffelder genutzt werden. Sie werden jetzt als Code dargestellt.

Hinweis: Ein Ausdruck muss mit CTRL+F9 (CMD+F9) eingefügt werden. Die einfache Eingabe der geschweiften Klammern funktioniert nicht!

Mit { MERGEFIELD Feldname } wird ein Datenfeld namens Feldname aus der Steuerdatei angesprochen. IF prüft eine Bedingung. Die Syntax lautet: { IF Bedingung WAHR FALSCH }. Ist die Bedingung wahr, wird der WAHR-Teil ausgeführt, sonst der FALSCH-Teil. Um die Ausgabe eventuell überschüssiger Leerzeichen zu vermeiden, sind die Adressfelder im Code direkt aneinander gefügt. Ist ein Datenfeld mit Inhalt gefüllt, ist zusätzlich ein trennendes Leerzeichen auszugeben. Das besorgt die Option \f “ „. Man nennt das ein bedingtes Leerzeichen. Es können auch andere Zeichen als das Leerzeichen verwendet werden, wie zum Beispiel Bindestriche. Soll vor dem Datenfeldinhalt eine bedingte Ausgabe erfolgen, verwendet man die Option \b. Auch dieser muss dann die Angabe der bedingten Ausgabezeichenfolge folgen.

Möglicherweise trickreich ist die Ausgabe des Zeilenumbruchs nach dem Firmennamen. Er wird als „harter Zeilentrenner“ ausgegeben, wenn ein Nachname vorhanden ist, dieses Datenfeld also keine leere Zeichenkette ist.

Zu beachten ist auch, nicht einfach die Anrede „Frau“ ausgeben zu dürfen, wenn die betreffende Person kein Mann ist. Es ist nochmals zu prüfen! – Wer es nicht glaubt, mag das einfach testen.

Mit der Schaltfläche „Ergebnisvorschau“ im Register „Sendungen“ können wir uns vom Erfolg unserer Bemühungen überzeugen. Vorher sollten wir nicht vergessen, mittels ALT+F9 in die Normalansicht zurückzukehren. Mit dem Datensatzsteuerelement, neben der Ergebnisvorschau, können wir vorwärts und rückwärts durch die Datensätze der Steuerdatei schreiten.

Eine ganz analoge Logik verwenden wir nun noch für die Briefanrede. Ist ein Nachname angegeben, werden wir ihn verwenden. Andernfalls soll die allgemeine Grußformel „Sehr geehrte Damen und Herren“ eingesetzt werden.

Code für Briefanrede
Code für Briefanrede

Damit ist der Serienbrief fertig. Adressfeld und Briefanrede werden in Abhängigkeit der vorhandenen Adressdaten korrekt generiert.

Die weiteren Serienbrieffunktionen, wie beispielsweise das Filtern von Adressen sowie natürlich auch das Drucken und Speichern, bedürfen keiner weiteren Erläuterung.

Fazit

Ein Serienbrief mit Anrede und und weiteren variablen Inhalten ist datengetrieben einfach zu erstellen. Die Eingabe der Regeln ist zwar nicht besonders komfortabel. Dafür ist sie aber leicht zu implementieren, hat man die Logik einmal begriffen.

Die Abbildung logischer Entscheidungen ist etwas umständlich. Schöner wäre es, wenn uns Word die Möglichkeit böte, die Logik entsprechend gängiger Programmiersprachen zu implementieren:

Leider geht das ohne VBA (Visual Basic for Applications) nicht. Dennoch führen in der Regel mehrere Wege nach Rom, die Logik einer Ausgabe zu formulieren. Jeder mag den wählen, der ihm am meisten behagt.

Karsten Brodmann

 

Weitere Informationen:

Karsten Brodmann

Karsten Brodmann hat an der Universität Osnabrück BWL/Wirtschaftsinformatik studiert. Er hat viele Jahre in der IT gearbeitet und dort Web- und Datenbankanwendungen entwickelt. Seit Gründung der Punkt-Akademie veröffentlicht Karsten Brodmann auch Schulungsvideos zur Datenbankentwicklung, Unix und Programmierung bei Udemy. In seiner Freizeit fotografiert Karsten Brodmann gerne. Seit vielen Jahren fotografiert er analog und digital. Dabei behält er jeweils den gesamten Workflow in der eigenen Hand, von der Aufnahme über die Dunkelkammer oder auch den Scanner sowie die Bildbearbeitung und den Ausdruck am PC.

Weitere Beiträge

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert