Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Aus Excel via VBA PDF in Word einfügen

Forumthread: Aus Excel via VBA PDF in Word einfügen

Aus Excel via VBA PDF in Word einfügen
12.07.2020 17:09:00
Carsten M.

Hallo zusammen,
erst einmal ein großes Lob an die Herber-Gemeinde. Dank euch bin ich innerhalb von 1 Jahr relativ fit in VBA-Programmierung geworden, praktisch von Null aus.
Habe folgendes Wehwehchen:
Für die Arbeit habe ich ein Deckblatt-Tool erstellt. Dieses füllt automatisch ein Deckblatt mit Attributen (Dokumentennummer, Revision, Ersteller, Datum, Titel usw.), macht eine PDF draus und fügt Sie als Seite 1 dem entsprechenden Dokument zu. Es dient dazu technische Doku im Anlagenbau zu ergänzen. Dort gibt es aber auch immer Excel-Listen (z.b. Armaturenlisten). Denen von Excel zu Excel ein Deckblatt zu verpassen ist nicht das Problem, die Probleme kommen erst bei bei Word-Dokumenten.
Ich kann nicht einfach die Exceltabelle in Word integrieren, da er mir die Formatierung zerschießt. So ein Musterdeckblatt in der Excel ist genau auf eine A4-Seite ausgerichtet. Ich habe gesehen, dass ich in Word aber händisch eine PDF einfügen kann. Dann muss ich noch zwei-dreimal Enter drücken, damit das Deckblatt auf Seite 1 ist und das eigentliche Dokument erst ab Seite 2 beginnt, aber dann ist es perfekt. Kein Ärger mit der Tabelle, weil es wie eine Grafik integriert ist. Das geht über Einfügen--Objekte.
Nun die Frage: Wie kriege ich es hin, dass ich aus der Excel-VBA-Routine heraus das Worddokument aufrufe und die PDF in das Dokument einfüge, einschl. der Tatsache, dass das Deckblatt Seite 1 ist und das technische Dokument von Seite2 (bis x Seiten) beginnt . Worddokument soll Word bleiben. Wir verändern Inhalt und Format der Dokumente nicht (außer ein Deckblatt davor). Kann euch leider kein Musterdeckblatt schicken aber in Ansicht--Umbruchvorschau ist es eine A4-Seite.
Word-Datei heißt Test.docx
PDF heißt Test 1.pdf
Excel heißt Test 1.xlsm
PDFPrg ist PDF 24 (geht kein Weg dran vorbei)
Öffnen kann ich die Word bereits
Pfad = "C:\Users\c15979\Desktop\Deckblatt_Muster\Test.docx"
Dim WdApp As Object
Dim wdDok As Object
Set WdApp = CreateObject("Word.Application")
Set wdDok = WdApp.documents.Open(Filename:=Pfad, ReadOnly:=True)
WdApp.Visible = True
WdApp.Activate
Das Einfügen mit Makrorekorder in Word zeigt das:
Selection.InlineShapes.AddOLEObject ClassType:="AcroExch.Document.DC", _
FileName:="", LinkToFile:=False, DisplayAsIcon:=False
Selection.TypeParagraph
Selection.TypeParagraph
Die letzen 2 Zeilen sind wohl das Enter-Drücken um den eigentlichen Text auf Seite 2 zu bekommen. Da darf er sich nicht vertun. Nicht dass ich eine Bedienungsanleitung zerschieße weil die Zeilen verrutschen.
Ich krieg die zwei Abschnitte einfach nicht zusammen.
Hoffe ihr könnt mir helfen. Danke und Gruß, und bleibt Gesund!
Carsten

Betrifft: AW: Aus Excel via VBA PDF in Word einfügen

Hi Carsten,
Kann euch leider kein Musterdeckblatt schicken
a) wieso nicht? Erstell doch eine Bsp-Excel-Datei, aus der eben das gewünschte PDF-Deckblatt erzeugt wird.
Anstelle der Original-Daten musst du natürlich Bsp-Daten verwenden
b) eine Bsp-Word-Datei mit x Seiten wäre auch schön, da wir doch gar nicht wissen, wie eure Word-Dateien aussehen
c) wenn a) + b) nicht geht, wie sollen wir dann testen können?
Ciao
Thorsten
Betrifft: AW: Aus Excel via VBA PDF in Word einfügen

Hallo Thorsten,
danke erst einmal für deine Mühen:
zu a) da hast du recht. Habe unser Deckblatt mal neutral gestaltet. Ich kann euch natürlich nichts mit Firmenlogo und echter Dokumentenkennung schicken. Firmeneigentum.
Link: https://www.herber.de/bbs/user/138847.xlsm
zu b) Ding der Unmöglichkeit. Es handelt sich um offizielle Dokumente. Bedienungsanleitungen von Armaturen, Motoren, Klimaanlagen, Kessel usw. Die können mal 10 Seiten umfassen, mal 200. Ich arbeite im Kraftwerksbau. Stell dir vor, dass dort jedes Teil eine Anleitung haben muss. Die kommen von unterschiedlichen Firmen in unterschiedlicher Aufmachung.
Wichtig ist eins: das Tool soll am Anfang eines solchen Dokumentes eine leere Seite einfügen, dort das Deckblatt hinhauen und das eigentliche Dokument beginnt dann somit ab Seite 2, ohne dass Zeilen verrutschen, was besonders bei Grafiken zum Problem werden könnte und das Inhaltsverzeichnis verfälscht. Du kannst das theoretisch mit jedem x-beliebigen Worddokument machen. Neue Seite 1 ist Deckblatt und eigentliches Dokument verschiebt sich um eine Seite auf Seite 2 ohne Versprünge.
Konnte hier übrigens keine docx und PDFs raufladen. Mein Tool macht mit PDF24 aus dem Excel-Deckblatt eine PDF und die soll, auch über das Tool, ins Worddokument eingefügt werden.
Danke an alle und Gruß!
Carsten
Betrifft: AW: Aus Excel via VBA PDF in Word einfügen

Hallo Carsten,
das folgende Makro habe ich unter Office 2010 erarbeitet. Sollte eigentlich auch unter neuerem Office laufen. Allerdings ist die Größe deutlich kleiner als bei Ausgabe in Excel.
LG
Franz
Sub Deckblatt()
' Öffnen der Word-Datei
Dim WdApp As Object
Dim wdDok As Object
Dim wdRange As Object 'Word.Range
Dim Pfad As String, PfadPDF As String
Pfad = "C:\Users\c15979\Desktop\Deckblatt_Muster\Test.docx"
PfadPDF = "C:\Users\c15979\Desktop\Deckblatt_Muster\Test.pdf" 'anpassen!!!
Set WdApp = CreateObject("Word.Application")
Set wdDok = WdApp.Documents.Open(Filename:=Pfad, ReadOnly:=True)
WdApp.Visible = True
WdApp.Activate
' Einfügen der pdf
Set wdRange = wdDok.Range(0, 0)
'Seitenwechsel einfügen
wdRange.InsertBreak Type:=7 '7=wdPageBreak
Set wdRange = wdDok.Range(0, 0)
wdRange.InlineShapes.AddOLEObject ClassType:="AcroExch.Document.7", _
Filename:=PfadPDF, LinkToFile:=False, _
DisplayAsIcon:=False ' 7 evtl. durch DC ersetzen
' Set wdDok = Nothing
' Set WdApp = Nothing
End Sub

Betrifft: AW: Aus Excel via VBA PDF in Word einfügen
Hallo Franz,
cool! Danke für die Antwort. Probiere es morgen gleich mal aus und melde mich ob es geklappt hat.
Wünsche allen einen schönen Sonntag!
Gruß!
Carsten
Anzeige

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Aus Excel via VBA PDF in Word einfügen
12.07.2020 17:09:00
Carsten M.
Hi Carsten,
Kann euch leider kein Musterdeckblatt schicken
a) wieso nicht? Erstell doch eine Bsp-Excel-Datei, aus der eben das gewünschte PDF-Deckblatt erzeugt wird.
Anstelle der Original-Daten musst du natürlich Bsp-Daten verwenden
b) eine Bsp-Word-Datei mit x Seiten wäre auch schön, da wir doch gar nicht wissen, wie eure Word-Dateien aussehen
c) wenn a) + b) nicht geht, wie sollen wir dann testen können?
Ciao
Thorsten
Betrifft: AW: Aus Excel via VBA PDF in Word einfügen

Hallo Thorsten,
danke erst einmal für deine Mühen:
zu a) da hast du recht. Habe unser Deckblatt mal neutral gestaltet. Ich kann euch natürlich nichts mit Firmenlogo und echter Dokumentenkennung schicken. Firmeneigentum.
Link: https://www.herber.de/bbs/user/138847.xlsm
zu b) Ding der Unmöglichkeit. Es handelt sich um offizielle Dokumente. Bedienungsanleitungen von Armaturen, Motoren, Klimaanlagen, Kessel usw. Die können mal 10 Seiten umfassen, mal 200. Ich arbeite im Kraftwerksbau. Stell dir vor, dass dort jedes Teil eine Anleitung haben muss. Die kommen von unterschiedlichen Firmen in unterschiedlicher Aufmachung.
Wichtig ist eins: das Tool soll am Anfang eines solchen Dokumentes eine leere Seite einfügen, dort das Deckblatt hinhauen und das eigentliche Dokument beginnt dann somit ab Seite 2, ohne dass Zeilen verrutschen, was besonders bei Grafiken zum Problem werden könnte und das Inhaltsverzeichnis verfälscht. Du kannst das theoretisch mit jedem x-beliebigen Worddokument machen. Neue Seite 1 ist Deckblatt und eigentliches Dokument verschiebt sich um eine Seite auf Seite 2 ohne Versprünge.
Konnte hier übrigens keine docx und PDFs raufladen. Mein Tool macht mit PDF24 aus dem Excel-Deckblatt eine PDF und die soll, auch über das Tool, ins Worddokument eingefügt werden.
Danke an alle und Gruß!
Carsten
Betrifft: AW: Aus Excel via VBA PDF in Word einfügen

Hallo Carsten,
das folgende Makro habe ich unter Office 2010 erarbeitet. Sollte eigentlich auch unter neuerem Office laufen. Allerdings ist die Größe deutlich kleiner als bei Ausgabe in Excel.
LG
Franz
Sub Deckblatt()
' Öffnen der Word-Datei
Dim WdApp As Object
Dim wdDok As Object
Dim wdRange As Object 'Word.Range
Dim Pfad As String, PfadPDF As String
Pfad = "C:\Users\c15979\Desktop\Deckblatt_Muster\Test.docx"
PfadPDF = "C:\Users\c15979\Desktop\Deckblatt_Muster\Test.pdf" 'anpassen!!!
Set WdApp = CreateObject("Word.Application")
Set wdDok = WdApp.Documents.Open(Filename:=Pfad, ReadOnly:=True)
WdApp.Visible = True
WdApp.Activate
' Einfügen der pdf
Set wdRange = wdDok.Range(0, 0)
'Seitenwechsel einfügen
wdRange.InsertBreak Type:=7 '7=wdPageBreak
Set wdRange = wdDok.Range(0, 0)
wdRange.InlineShapes.AddOLEObject ClassType:="AcroExch.Document.7", _
Filename:=PfadPDF, LinkToFile:=False, _
DisplayAsIcon:=False ' 7 evtl. durch DC ersetzen
' Set wdDok = Nothing
' Set WdApp = Nothing
End Sub

Betrifft: AW: Aus Excel via VBA PDF in Word einfügen
Hallo Franz,
cool! Danke für die Antwort. Probiere es morgen gleich mal aus und melde mich ob es geklappt hat.
Wünsche allen einen schönen Sonntag!
Gruß!
Carsten
Anzeige
AW: Aus Excel via VBA PDF in Word einfügen
12.07.2020 17:09:00
Carsten M.
Hallo Thorsten,
danke erst einmal für deine Mühen:
zu a) da hast du recht. Habe unser Deckblatt mal neutral gestaltet. Ich kann euch natürlich nichts mit Firmenlogo und echter Dokumentenkennung schicken. Firmeneigentum.
Link: https://www.herber.de/bbs/user/138847.xlsm
zu b) Ding der Unmöglichkeit. Es handelt sich um offizielle Dokumente. Bedienungsanleitungen von Armaturen, Motoren, Klimaanlagen, Kessel usw. Die können mal 10 Seiten umfassen, mal 200. Ich arbeite im Kraftwerksbau. Stell dir vor, dass dort jedes Teil eine Anleitung haben muss. Die kommen von unterschiedlichen Firmen in unterschiedlicher Aufmachung.
Wichtig ist eins: das Tool soll am Anfang eines solchen Dokumentes eine leere Seite einfügen, dort das Deckblatt hinhauen und das eigentliche Dokument beginnt dann somit ab Seite 2, ohne dass Zeilen verrutschen, was besonders bei Grafiken zum Problem werden könnte und das Inhaltsverzeichnis verfälscht. Du kannst das theoretisch mit jedem x-beliebigen Worddokument machen. Neue Seite 1 ist Deckblatt und eigentliches Dokument verschiebt sich um eine Seite auf Seite 2 ohne Versprünge.
Konnte hier übrigens keine docx und PDFs raufladen. Mein Tool macht mit PDF24 aus dem Excel-Deckblatt eine PDF und die soll, auch über das Tool, ins Worddokument eingefügt werden.
Danke an alle und Gruß!
Carsten
Betrifft: AW: Aus Excel via VBA PDF in Word einfügen

Hallo Carsten,
das folgende Makro habe ich unter Office 2010 erarbeitet. Sollte eigentlich auch unter neuerem Office laufen. Allerdings ist die Größe deutlich kleiner als bei Ausgabe in Excel.
LG
Franz
Sub Deckblatt()
' Öffnen der Word-Datei
Dim WdApp As Object
Dim wdDok As Object
Dim wdRange As Object 'Word.Range
Dim Pfad As String, PfadPDF As String
Pfad = "C:\Users\c15979\Desktop\Deckblatt_Muster\Test.docx"
PfadPDF = "C:\Users\c15979\Desktop\Deckblatt_Muster\Test.pdf" 'anpassen!!!
Set WdApp = CreateObject("Word.Application")
Set wdDok = WdApp.Documents.Open(Filename:=Pfad, ReadOnly:=True)
WdApp.Visible = True
WdApp.Activate
' Einfügen der pdf
Set wdRange = wdDok.Range(0, 0)
'Seitenwechsel einfügen
wdRange.InsertBreak Type:=7 '7=wdPageBreak
Set wdRange = wdDok.Range(0, 0)
wdRange.InlineShapes.AddOLEObject ClassType:="AcroExch.Document.7", _
Filename:=PfadPDF, LinkToFile:=False, _
DisplayAsIcon:=False ' 7 evtl. durch DC ersetzen
' Set wdDok = Nothing
' Set WdApp = Nothing
End Sub

Betrifft: AW: Aus Excel via VBA PDF in Word einfügen
Hallo Franz,
cool! Danke für die Antwort. Probiere es morgen gleich mal aus und melde mich ob es geklappt hat.
Wünsche allen einen schönen Sonntag!
Gruß!
Carsten
Anzeige
AW: Aus Excel via VBA PDF in Word einfügen
12.07.2020 17:09:00
Carsten M.
Hallo Carsten,
das folgende Makro habe ich unter Office 2010 erarbeitet. Sollte eigentlich auch unter neuerem Office laufen. Allerdings ist die Größe deutlich kleiner als bei Ausgabe in Excel.
LG
Franz
Sub Deckblatt()
' Öffnen der Word-Datei
Dim WdApp As Object
Dim wdDok As Object
Dim wdRange As Object 'Word.Range
Dim Pfad As String, PfadPDF As String
Pfad = "C:\Users\c15979\Desktop\Deckblatt_Muster\Test.docx"
PfadPDF = "C:\Users\c15979\Desktop\Deckblatt_Muster\Test.pdf" 'anpassen!!!
Set WdApp = CreateObject("Word.Application")
Set wdDok = WdApp.Documents.Open(Filename:=Pfad, ReadOnly:=True)
WdApp.Visible = True
WdApp.Activate
' Einfügen der pdf
Set wdRange = wdDok.Range(0, 0)
'Seitenwechsel einfügen
wdRange.InsertBreak Type:=7 '7=wdPageBreak
Set wdRange = wdDok.Range(0, 0)
wdRange.InlineShapes.AddOLEObject ClassType:="AcroExch.Document.7", _
Filename:=PfadPDF, LinkToFile:=False, _
DisplayAsIcon:=False ' 7 evtl. durch DC ersetzen
' Set wdDok = Nothing
' Set WdApp = Nothing
End Sub

Betrifft: AW: Aus Excel via VBA PDF in Word einfügen
Hallo Franz,
cool! Danke für die Antwort. Probiere es morgen gleich mal aus und melde mich ob es geklappt hat.
Wünsche allen einen schönen Sonntag!
Gruß!
Carsten
Anzeige
AW: Aus Excel via VBA PDF in Word einfügen
12.07.2020 17:09:00
Carsten M.
Hallo Franz,
cool! Danke für die Antwort. Probiere es morgen gleich mal aus und melde mich ob es geklappt hat.
Wünsche allen einen schönen Sonntag!
Gruß!
Carsten
;

Forumthreads zu verwandten Themen

Anzeige

Infobox / Tutorial

Aus Excel via VBA PDF in Word einfügen


Schritt-für-Schritt-Anleitung

  1. Excel-VBA-Projekt vorbereiten
    Öffne Excel und erstelle ein neues VBA-Projekt. Du kannst dies tun, indem du die Tastenkombination ALT + F11 drückst.

  2. Referenzen setzen
    Stelle sicher, dass du die Microsoft Word-Objektbibliothek hinzugefügt hast. Gehe zu Extras > Verweise und aktiviere "Microsoft Word xx.x Object Library".

  3. Makro erstellen
    Füge folgendes Makro in ein Modul ein:

    Sub Deckblatt()
       ' Öffnen der Word-Datei
       Dim WdApp As Object
       Dim wdDok As Object
       Dim wdRange As Object 'Word.Range
       Dim Pfad As String, PfadPDF As String
       Pfad = "C:\Users\c15979\Desktop\Deckblatt_Muster\Test.docx"
       PfadPDF = "C:\Users\c15979\Desktop\Deckblatt_Muster\Test.pdf" 'anpassen!!!
    
       Set WdApp = CreateObject("Word.Application")
       Set wdDok = WdApp.Documents.Open(Filename:=Pfad, ReadOnly:=True)
       WdApp.Visible = True
       WdApp.Activate
    
       ' Einfügen der PDF
       Set wdRange = wdDok.Range(0, 0)
       wdRange.InsertBreak Type:=7 ' Seitenwechsel einfügen
       wdRange.InlineShapes.AddOLEObject ClassType:="AcroExch.Document.7", _
       Filename:=PfadPDF, LinkToFile:=False, _
       DisplayAsIcon:=False ' 7 evtl. durch DC ersetzen
    End Sub
  4. PDF einfügen
    Das Makro öffnet das Word-Dokument und fügt die PDF-Datei an die erste Stelle ein. Stelle sicher, dass der Pfad zur PDF korrekt ist.

  5. Makro ausführen
    Führe das Makro aus, um das PDF in das Word-Dokument einzufügen.


Häufige Fehler und Lösungen

  • Problem: PDF wird nicht richtig eingefügt
    Lösung: Überprüfe, ob der ClassType der PDF-Datei im Makro korrekt angegeben ist. Möglicherweise musst du AcroExch.Document.DC verwenden.

  • Problem: Word-Dokument öffnet nicht
    Lösung: Stelle sicher, dass der Pfad zum Word-Dokument korrekt ist und die Datei existiert.

  • Problem: Formatierung geht verloren
    Lösung: Versuche das PDF als Bild in Word einzufügen, um die Formatierung beizubehalten.


Alternative Methoden

  • Manuelles Einfügen
    Du kannst die PDF-Datei manuell in Word einfügen, indem du zu Einfügen > Objekt > Aus Datei erstellen gehst. Dies ist besonders nützlich, wenn du nur einmal ein PDF einfügen möchtest.

  • PDF als Bild einfügen
    Wenn du mehrere Seiten der PDF in Word einfügen möchtest, kannst du die PDF-Datei in Bilder umwandeln und diese dann in das Word-Dokument einfügen. Verwende dafür ein Tool wie PDF24.


Praktische Beispiele

  1. Einfügen eines einzelnen PDFs
    Wenn du nur eine PDF-Seite in Word einfügen möchtest, kannst du das Makro entsprechend anpassen, um nur die erste Seite zu extrahieren.

  2. Einfügen mehrerer Seiten
    Du kannst das Makro erweitern, um mehrere PDF-Seiten in Word einzufügen, indem du die Seiten nacheinander als Bild einfügst.

  3. Deckblatt und Dokument kombinieren
    Verwende das oben genannte Makro, um ein PDF-Deckblatt in Word einzufügen und gleich danach das technische Dokument.


Tipps für Profis

  • Automatisierung
    Überlege, die gesamte Routine in ein größeres VBA-Projekt zu integrieren, das auch andere Dokumente verarbeitet und automatisiert, um Zeit zu sparen.

  • Fehlerbehandlung
    Füge Fehlerbehandlungsroutinen in dein Makro ein, um Probleme beim Öffnen von Dateien oder beim Einfügen zu identifizieren.

  • Performance
    Reduziere die Anzahl der Bildschirmaktualisierungen mit Application.ScreenUpdating = False, um die Ausführungsgeschwindigkeit des Makros zu erhöhen.


FAQ: Häufige Fragen

1. Kann man PDF in Word einfügen?
Ja, du kannst PDF-Dateien in Word einfügen, indem du sie als Objekt oder Bild hinzufügst.

2. Wie füge ich mehrere PDF-Seiten in Word ein?
Du kannst mehrere Seiten einer PDF in Word einfügen, indem du jede Seite als Bild einfügst oder das PDF in Word bearbeitest.

3. Was ist der beste Weg, um ein PDF-Dokument in Word zu integrieren?
Der beste Weg ist, die PDF-Datei als Bild einzufügen, um die Formatierung zu bewahren. Alternativ kannst du das PDF als Objekt einfügen.

4. Funktioniert das auch mit neueren Office-Versionen?
Ja, das oben angegebene Makro funktioniert unter Office 2010 und neueren Versionen.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige