Word Serienbriefe mit QR-Codes
Workshops > Word
Mit der Serienbrieffunktion von Word lässt sich viel manuelle Arbeit sparen. So können Sie damit Briefe, Etiketten etc. mit Daten aus Tabellen füllen. Einen Workshop dazu habe ich bereits vor einiger Zeit erstellt.
Aber nicht genug damit. QR-Codes, diese pixeligen Bildchen, die man an vielen Stellen sieht, lassen sich auch in Serienbriefen hervorragend nutzen. Word bietet seit Version 2013 eine Feldfunktion an, mit deren Hilfe Barcodes und QR-Codes erzeugt werden können: DISPLAYBARCODE.
In diesem Workshop zeige ich Ihnen, wie Sie mit diesen QR-Codes Zahlungsinformationen auf Rechnungen per Serienbrief ausgeben können. Diese lassen sich anschließend mit einer passenden Banking-App (zum Beispiel Scan2Bank) einlesen und ersparen dem Zahlungspflichtigen damit manuelle Eingaben.
Im Workshop geht es vornehmlich um die Erzeugung des QR-Code per Serienbrief. Die Serienbrieffunktion wird von mir als bekannt vorausgesetzt.
Versionshinweise
Word ab Version 2013
Das Feld zur Code-Erstellung
In der Hilfe zu Word sind die verschiedenen Möglichkeiten und Informationen zum DISPLAYBARCODE-Feld aufgelistet. Die Syntax lautet:
{ DisplayBarcode Feld-Argument-1 Feld-Argument-2 [Schalter] }
Beachten Sie, dass die beiden geschweiften Klammern am Anfang bzw. Ende nicht als Zeichen manuell über die Tastatur eingegeben werden dürfen. Vielmehr handelt es sich um die Kennzeichnung für Word, dass es sich um ein Feld handelt, daher ist die Tastenkombination [Strg] + [F9] zur Erzeugung zu verwenden. Die Inhalte zwischen den Klammern werden anschließend manuell hineingeschrieben.
- Bei Feld-Argument-1 handelt es sich um die darzustellenden Daten. Dies können – je nach Codetyp – Zahlen, Texte oder gemischte Inhalte sein.
- Feld-Argument-2 gibt den Typ des zu generierenden Codes an.
In diesem Workshop wird der Typ QR behandelt. Details zu den anderen Typen finden Sie in der Hilfe von Microsoft. Suchen Sie dazu einfach mit dem Begriff „Feldfunktionen: DisplayBarcode“ in der Suchmaschine Ihres Vertrauens. - Die optionalen Schalter bieten Möglichkeiten zur Anpassung der Codes.
Für den Typ QR sind folgende Schalter vorgesehen: - \s [Feld-Argument]
Das Feld Argument definiert einen Skalierungsfaktor für das erzeugte Symbolbild. Es sind nur ganzzahlige Prozentpunkte zwischen 10 und 1000 zulässig. - \q [Feld-Argument]
Das Feld Argument gibt die Stärke der Fehlerkorrektur an. Gültige Werte sind 0-3. - \f [Feld-Argument]
Mit diesem Feld Argument besteht die Möglichkeit, die Vordergrundfarbe des Barcodesymbols zu definieren. Gültige RGB-Werte liegen im Bereich von 0 bis 0xffffff.
Das folgende Feld erzeugt den Code in roter Schrift (0xff) auf grünem Hintergrund (0x00ff):
{ DISPLAYBARCODE "www.servandtrain.de“ QR \f 0xff \b 0x00ff }
- \b [Feld-Argument]
Dieses Argument steuert die Hintergrundfarbe des Barcode-Symbols. Gültige RGB-Werte liegen ebenso im Bereich von 0 bis 0xffffff.
Das Feld-Argument-1 kann direkt in die Feldfunktion eingegeben (siehe Beispiel oben) werden. Wollen Sie die Einträge per Serienbrieffunktion verwenden, geben Sie diese in der zum Serienbrief zugrunde liegenden Datendatei ein und rufen sie in Word per Feldfunktion MERGEFIELD innerhalb der Feldfunktion DISPLAYBARCODE ab.
Im folgenden Beispiel handelt es sich um das Feld QRDaten, für das ein QR-Barcode mit 50%iger Skalierung erzeugt werden soll. Beachten Sie, dass es sich um zwei geschachtelte Feldfunktionen handelt – erkennbar an den beiden geschweiften Klammerpaaren.
{ DISPLAYBARCODE { MERGEFIELD QRDaten } QR \s 50 }
Für das anfangs angesprochene Beispiel der Banken-App muss das Feld einen exakt definierten Aufbau von 12 Zeilen aufweisen. Nur dadurch ist die Aufteilung der Daten durch die App auf die verschiedenen Felder einer Zahlungsanweisung möglich. Dazu zählen der Betrag, der Empfängername, die IBAN und so weiter.
Wikipedia liefert unter EPC-QR-Code den Aufbau sowie weitere Informationen zum EPC-QR-Code. Unter anderen Quellen im Internet sind bei Bedarf weitere Informationen zu den einzelnen Zeilenwerten zu finden.
- Service TagBCD
- Version (001 oder 002)
002
Bei Version 001 ist die BIC zwingend anzugeben, bei Version 002 kann sie angegeben werden oder ganz entfallen. - Zeichencodierung (1= UTF-8, 2 = ISO 8859-1, 3 = ISO 8859-2, 4 = ISO 8859-4, 5 = ISO 8859-5, 6 = ISO 8859-7, 7 = ISO 8859-10, 8 = ISO 8859-15)
2
Für dieses Beispiel habe ich Codierung 2 gewählt. Falls die Codierung falsch ist, werden die Daten von der App nicht korrekt erkannt. - SEPA Credit TransferSCT
- BIC der Empfängerbank (8 bzw. 11 stellig)XXXXXXXXYYY
- Name des Zahlungsempfängers (maximal 70 Zeichen Text)
Willi Mustermann - Internationale Bankkontonummer (IBAN) des Zahlungsempfängers; maximal 34 ZeichenDE11999999995555555555
- Zahlungsbetrag
EUR123.4
EUR1000
EUR15.85
Das Feld kann leer bleiben. Es muss, wenn angegeben, im Format „EUR#.##“ festgelegt sein.
Beachten Sie: es wird ein Dezimal-PUNKT verlangt, kein Komma. Es dürfen keine führenden und sollten keine nachstelligen Nullen angegeben werden. Als Währung ist nur EUR (in Großschreibung) zulässig. - Zweck (vierstelliger Buchstabencode, optional)CHAR
- Referenz (strukturierter 35-Zeichen-Code)Entweder Zeile 10 befüllen ODER Zeile 11.RF1234567890
- Verwendungszweck
Rechnung #78 vom 02.10.2020
maximal 140 Zeichen
Entweder Zeile 10 befüllen ODER Zeile 11. - Hinweis an den Nutzer (optional);
Vielen Dank für die Zahlung
Es erfolgt keine Übergabe dieses Inhalts an das Formular des Zahlungsverkehrs.
Die verschiedenen Zeilen des EPC-Code werden mit Zeilenschaltungen (Zeichen 10 bzw. Zeichen 13) getrennt. Diese erzeugen wir in der Datendatei in Excel, wobei Sie frei darin sind, für welches der beiden Sie sich entscheiden. Allerdings muss innerhalb eines Codes durchgängig dasselbe Zeichen verwendet werden.
Umsetzung der Theorie in die Praxis
Als Serienbriefdokument habe ich in Word ein einfaches Rechnungsformular erstellt, das später mit den Daten der Excel-Datei gefüllt werden soll. Für die Daten benötigen wir eine Tabelle, die in Excel erstellt wird.
Öffnen Sie dazu eine leere Mappe in Excel.
Der Einfachheit halber habe ich je Rechnung Platz für vier Rechnungspositionen vorgesehen. Dies können Sie selbstredend an Ihre Bedürfnisse anpassen.
Nach der Rechnungs- und der Kunden-Nummer werden die Daten des Kunden wie Name, Straße und PLZ/Ort angegeben. Danach kommen die Bestellpositionen, die aus jeweils vier Spalten bestehen: Menge, Text, Preis und Gesamt. Diese sind von 1-4 durchnummeriert.
In Spalte V steht die Nettosumme der einzelnen Gesamtwerte der Bestellpositionen, aus der die MwSt und danach die Gesamtsumme berechnet wird.
Die folgenden Spalten bilden die einzelnen Zeilenwerte, die per Formel übertragen bzw. ermittelt werden.
Beim Betrag ist, wie oben bereits beschrieben, das spezielle Format zu beachten. Dies wird per Formel zusammengebaut (bei den Bezügen handelt es sich jeweils um strukturierte Verweise, da die Daten in einer Layouttabelle formatiert vorliegen):
="EUR"&KÜRZEN([@Gesamt])&WENN(KÜRZEN([@Gesamt])=[@Gesamt];"";".")&WENNFEHLER(TEIL([@Gesamt];FINDEN(",";[@Gesamt])+1;2);"")
Durch dieses Konstrukt wird das Komma durch einen Punkt ersetzt (sofern Dezimalstellen vorhanden sind) und abschließende Nullen eliminiert.
Die feststehenden Werte wie Servicekennung etc. sind in einem zweiten Tabellenregister (Basisdaten) vorgegeben und werden per Formelkopie übertragen.
Der Verwendungszweck wird ebenfalls per Formel zusammengesetzt (das aktuelle Tagesdatum wird per HEUTE-Funktion auf dem zweiten Tabellenblatt erzeugt und per Formel übernommen und formatiert):
="Re-Nr. "& [@[Rech-Nr]] &" vom "&TEXT(Basisdaten!$B$2;"T.M.JJJJ")
Die eigentlichen QR-Daten werden abschließend ebenfalls per Formel erzeugt und ergeben die zwölf Zeilen in einer Zelle. Die Funktion UNIZEICHEN(13) erzeugt dabei den jeweils notwendigen Zeilenwechsel zwischen den Feldern und wird zwischen die Inhalte der Spalten Y (Servicekennung) bis AK (Hinweis) eingefügt. Der zweite Parameter (FALSCH) sorgt dafür, dass die leeren Zellen ebenfalls übernommen und nicht übersprungen werden.
=TEXTVERKETTEN(UNIZEICHEN(13);FALSCH;Rechnungen[@[Servicekennung]:[Hinweis]])
Im Word-Serienbrief wird die Excel-Mappe als Datenquelle eingebunden. Danach lassen sich die einzelnen Seriendruckfelder (Spalten) zuweisen.
Im Bild sind die ersten Felder in der Feldansicht zu sehen:
Nach der letzten Rechnungsposition erfolgt die Summierung und ganz unten die Ausgabe des QR-Code:
Nach dem Umschalten der Anzeige und Einschalten der Vorschau sieht die Rechnung aus wie gewünscht:
Bei den im Beispiel verwendeten Namen und Daten handelt es sich um Zufalls- und Beispielwerte. Sie können den angezeigten QR-Code mit Ihrer App prüfen und die Übernahme kontrollieren. Wenn Sie anschließend den Vorgang abbrechen, passiert nichts und keine Buchung erfolgt. Ggf. sind bei anderen Banken-Apps Anpassungen vorzunehmen. Schauen Sie dann in der jeweiligen App-Dokumentation nach. Beim hier verwendeten Scan2Bank handelt es sich meines Wissens um einen weit verbreiteten Code.
Die im Workshop verwendeten Dateien (Datendatei .xlsx und Serienbrief .docx; .zip, 90 KB) können Sie herunterladen und nach Ihren eigenen Anforderungen anpassen.
Bei der Umsetzung wünsche ich Ihnen viel Erfolg.