Excel automatisiert mit Word verknüpfen
Ich zeige dir, wie du deine Excel Anwendung mit Word verknüpfen kannst. Das erhöht die Effizienz enorm, da Dokumente somit schnell und präzise erstellt werden. Auch die Benutzerfreundlichkeit deiner Anwendung wird gesteigert, da Rechnungen, Angebote, Lieferscheine etc. nicht mehr händisch befüllt werden müssen.
Schritt 1: Word Vorlage erstellen
Starte damit, eine Word Vorlage zu erstellen. Wichtig dabei ist, dass du für dynamische Inhalte (Datum, Name, Beträge, etc.) Textmarken hinzufügst, die wir später aus Excel VBA heraus ansprechen können.
Schritt 2: Excel VBA Zugriff auf Word freigeben
Jetzt musst du Excel Zugriff auf Word gestatten. Aktiviere dazu unter Extras – Verweise die Word Bilbiothek (Microsoft Word 16.0 Object Library)
Schritt 3: Excel VBA mit Word verknüpfen
Jetzt kannst du auf die Wordvorlage mit dem entsprechenden Pfad zugreifen und die Textmarken mit Inhalten aus deiner Excel Anwendung befüllen. So kannst du einerseits Einzeldokumente erstellen oder auch einen Serienbrief.
Code für Einzeldokumente:
Sub ExportToWord()
'Bibliothek aktivieren
Dim wordapp As New Word.Application
Dim doc As Word.Document
Dim wrdPic As Word.InlineShape
Dim Zeile As Long
Zeile = ActiveCell.Row
'Word sichtbar machen
wordapp.Visible = True
'Word-Datei öffnen
Set doc = wordapp.Documents.Open("C:\Users\kaiwe\Desktop\Newsletter-Template.docx")
'Word-Datei mit Excel-Daten befüllen
doc.Bookmarks("Firma").Range.Text = Kundendaten.Cells(Zeile, 5).Value
doc.Bookmarks("Straße").Range.Text = Kundendaten.Cells(Zeile, 7).Value
doc.Bookmarks("Ort").Range.Text = Kundendaten.Cells(Zeile, 8).Value
doc.Bookmarks("Land").Range.Text = Kundendaten.Cells(Zeile, 9).Value
doc.Bookmarks("Datum").Range.Text = Date
doc.Bookmarks("Ansprechpartner").Range.Text = Kundendaten.Cells(Zeile, 6).Value
'Bild einfügen
Set wrdPic = doc.Bookmarks("Bild").Range.InlineShapes.AddPicture("C:\Users\kaiwe\Desktop\Beispielbild.jpg")
'wrdPic.ScaleHeight = 10
'wrdPic.ScaleWidth = 10
'Word-Datei abspeichern
doc.SaveAs2 ThisWorkbook.Path & "\Newsletter " & Kundendaten.Cells(Zeile, 4).Value & ".docx"
'Word-Datei als PDF abspeichern
doc.ExportAsFixedFormat ThisWorkbook.Path & "\Newsletter " & Kundendaten.Cells(Zeile, 4).Value & ".pdf", wdExportFormatPDF
'Word-Datei schließen
doc.Close SaveChanges:=False
'Word-Applikation schließen
wordapp.Quit
End Sub
Code für Seriendruck:
Sub ExportToWord_Seriendruck()
'Bibliothek aktivieren
Dim wordapp As New Word.Application
Dim doc As Word.Document
Dim wrdPic As Word.InlineShape
Dim Zeile As Long
'Word sichtbar machen
wordapp.Visible = True
For Zeile = 11 To Kundendaten.Cells(Rows.Count, 4).End(xlUp).Row
'Word-Datei öffnen
Set doc = wordapp.Documents.Open("C:\Users\kaiwe\Desktop\Newsletter-Template.docx")
'Word-Datei mit Excel-Daten befüllen
doc.Bookmarks("Firma").Range.Text = Kundendaten.Cells(Zeile, 5).Value
doc.Bookmarks("Straße").Range.Text = Kundendaten.Cells(Zeile, 7).Value
doc.Bookmarks("Ort").Range.Text = Kundendaten.Cells(Zeile, 8).Value
doc.Bookmarks("Land").Range.Text = Kundendaten.Cells(Zeile, 9).Value
doc.Bookmarks("Datum").Range.Text = Date
doc.Bookmarks("Ansprechpartner").Range.Text = Kundendaten.Cells(Zeile, 6).Value
'Bild einfügen
Set wrdPic = doc.Bookmarks("Bild").Range.InlineShapes.AddPicture("C:\Users\kaiwe\Desktop\Beispielbild.jpg")
'wrdPic.ScaleHeight = 10
'wrdPic.ScaleWidth = 10
'Word-Datei abspeichern
'doc.SaveAs2 ThisWorkbook.Path & "\Newsletter " & Kundendaten.Cells(Zeile, 4).Value & ".docx"
'Word-Datei als PDF abspeichern
doc.ExportAsFixedFormat ThisWorkbook.Path & "\Newsletter " & Kundendaten.Cells(Zeile, 4).Value & ".pdf", wdExportFormatPDF
'Word-Datei schließen
doc.Close SaveChanges:=False
Next Zeile
'Word-Applikation schließen
wordapp.Quit
End Sub
'Bereitgestellt von VBATrainer: www.vbatrainer.de
End Sub
Ich hoffe dieses Tutorial hilft dir dabei, deine Anwendungen effektiver und Nutzerfreundlicher zu gestalten.
Um VBA zu lernen und besser zu verstehen, empfehle ich dir mein kostenloses Grundlagentraining, in dem ich dir die ersten Schritt in Excel-VBA zeige.