VBA für Office: Daten aus Excel automatisiert in Word einfügen

Viele repetitive und zeitraubende Aufgaben in Office lassen sich mit VBA automatisieren. Am Beispiel eines Serienbriefs zeigt VBA-Trainer Jörn Schramm, wie Sie Excel-Inhalte mit einem Klick in Word importieren.

Autor/in Jörn Schramm
Datum 17.02.2021
Lesezeit 4 Minuten

Sie verfügen über eine Liste mit Adressen, die in einer Excel-Arbeitsmappe gespeichert ist. Für einen Serienbrief möchten Sie auf diese Daten zurückgreifen, ohne dass Sie die Adressen Zeile für Zeile manuell in Word einfügen müssen.

Das geht. Mit ein wenig Programmier-Kenntnissen in VBA (Visual Basic for Applications) lässt sich jede Adresse mit einem Klick in den Adressteil der Word-Vorlage einspielen. Trainer Jörn Schramm führt Sie Schritt für Schritt durch die Übung.

Anleitung: Adressen mit VBA automatisiert in Word importieren

Die folgende Abbildung zeigt einen Auszug aus einer Liste mit Adressen. (Alle Adressen sind frei erfunden und jede Ähnlichkeit mit echten Adressen wäre rein zufällig.)

Die aktive Zelle ist A10. Es soll ein Brief an die Adresse dieser Zeile geschrieben werden.

1 Textmarken definieren

Damit per Programm Informationen an exakten Positionen in einem Word-Dokument platziert werden können, müssen diese Positionen gekennzeichnet werden. Hierzu werden Textmarken verwendet.

Hierbei unterscheidet man Positions-Textmarken, welche nur durch die jeweilige Position der Schreibmarke bestimmt werden; diese sind später im Dokument aber nur erkennbar, wenn dies in den Word-Optionen so eingestellt ist.

Für eine spätere Bearbeitung eines Dokuments sind Inhalts-Textmarken besser handhabbar: Sie enthalten bereits einen aussagefähigen Text und werden durch das Programm später überschrieben.

In der bereits vorbereiteten Dokumentvorlage sollen für die Positionen, in denen im Moment «Anschrift», «Datum» und «Betreff» stehen, Textmarken definiert werden.

Hierzu werden die Texte jeweils markiert und über die Registerkarte «Einfügen»/»Textmarke» die entsprechenden Textmarken eingefügt. Damit sind die Arbeiten an der Word-Vorlage erledigt.

Da das Programm von Excel aus gestartet werden soll, müssen wir Excel aber noch beibringen, dass es auch ein Word gibt; für den Zugriff auf das Word-Dokument fehlen im Excel-VBA sonst die Anweisungen.

2 Auf Word Object Library verweisen

Hierzu ist es notwendig, einen Verweis auf die Word-Bibliothek zu setzen. Über «Extras>/»Verweise» muss diese eingebunden werden.

Nun beginnt die eigentliche VBA-Programmierung.

3 Variable deklarieren:

Dim lngZeile As Long

Dim strAdresse As String

Dim strBetreff As String

Ein Word-Objekt erstellen

Dim objWord As New Word.Application

4 Word sichtbar machen

objWord.Visible = True

Ein neues Word-Dokument auf Basis der Vorlage erstellen

objWord.Documents.Add "Office Tools AG Brief.dotx"

Sicher stellen, dass das richtige Tabellenblatt aktiv ist

Sheets("Adressliste").Activate

5 Ermitteln der Zeile mit der aktiven Zelle

lngZeile = ActiveCell.Row

Adresse zusammenbauen; vbNewLine erzeugt einen Zeilenumbruch

strAdresse = Cells(lngZeile, 1) & vbNewLine & Cells(lngZeile, 3) & " " & Cells(lngZeile, 2) _

& vbNewLine & Cells(lngZeile, 4) & vbNewLine & Cells(lngZeile, 5) & " " & Cells(lngZeile, 6)

6 Betreff abfragen

strBetreff = InputBox("Betreff eingeben:", "Brief schreiben", "Bitte hier den Betreff...")

7 Textmarken bestücken

objWord.ActiveDocument.Bookmarks("Anschrift").Range.Text = strAdresse

objWord.ActiveDocument.Bookmarks("Datum").Range.Text = Date

objWord.ActiveDocument.Bookmarks("Betreff").Range.Text = strBetreff

Fertig!

Weitere Blog-Beiträge von unseren Trainern zum Thema VBA:

Empfohlenes Kursangebot in VBA

Bootcamp: Microsoft Visual Basic for Applications (VBA) («BCVBA1»)

Die umfassende Weiterbildung für angehende VBA-Programmierer. Mehr erfahren

Tageskurse:

Bootcamp: Microsoft Visual Basic for Applications (VBA) («BCVBA1»)

Die umfassende Weiterbildung für angehende VBA-Programmierer. Mehr erfahren

Tageskurse:


Autor/in

Jörn Schramm

Jörn ist Microsoft Certified Trainer, SVEB-I-zertifiziert und seit 1999 bei Digicomp als Office-Trainer tätig. Er ist ausgewisener VBA-Experte und spezialisiert auf komplexe Anwendungen auf der Basis von Access & Excel.