Word VBA Snippet zur schnellen PDF Konvertierung
No comment
Wer wie ich häufig darauf angewiesen ist mit Word erstellte Dokumente nach abgeschlossener Arbeit ins PDF Format zu konvertieren, findet vielleicht an diesem VBA Snippet Interesse.
Es ist für Word 2007 entwickelt und spart drei Arbeitsschritte ein.
- Word Dokument speichern
- PDF erzeugen (überschreiben) und die Vorschau im PDF Reader öffnen
- Word beenden
Hier der Quellcode:
Sub PDFandClose() ' ' PDFandClose Makro ' Speichert und erzeugt PDF beim Schließen von Word ' 2016 Christian Falke 'Variablen für Dateipfad Dim strPfad As String 'Zeichenkette für den Pfad des aktuellen Dokuments Dim strDok As String 'Zeichenkette für den Namen des aktuellen Dokuments strPfad = ActiveDocument.Path 'Dokumentpfad ermitteln um auf alle Dokumente angewendet werden zu können. strDok = Replace(ActiveDocument.Name, ".docx", "") 'Löscht das .docx aus Dateinamen wegen der PDF Konvertierung 'Variablen für die Fehlerbehandlung Dim Mldg As String Dim Titel As String Dim Antwort As Variant Mldg = "Fehler: Wahrscheinlich ist ein Vorgänger PDF Dokument geöffnet. Bitte PDF Reader schließen und Wiederholen oder Abbrechen" Titel = "PDF Konvertierungsfehler" ActiveDocument.Save 'Speichere .docx On Error GoTo Konvertierungsfehler 'Bei Problemen 'Erzeuge PDF für Druck und Onlinedarstellung, öffne das Dokument zur Ansicht im PDF Reader ActiveDocument.ExportAsFixedFormat OutputFileName:= _ strPfad & "\" & strDok & ".pdf" _ , ExportFormat:=wdExportFormatPDF, OpenAfterExport:=True, OptimizeFor:= _ wdExportOptimizeForPrint, Range:=wdExportAllDocument, From:=1, To:=1, _ Item:=wdExportDocumentContent, IncludeDocProps:=True, KeepIRM:=True, _ CreateBookmarks:=wdExportCreateNoBookmarks, DocStructureTags:=True, _ BitmapMissingFonts:=True, UseISO19005_1:=False Application.Quit 'Beende Word Konvertierungsfehler: 'Kann in der Regel die Datei nicht schreiben/überschreiben, PDF geöffnet? Antwort = MsgBox(Mldg, vbQuestion + vbRetryCancel, Titel) 'Dialogfeld zur Fehlerbehandlung If Antwort = vbRetry Then 'Wenn Benutzer PDF geschlossen hat wiederholen, ansonsten endet die Prozedur Resume Else Exit Sub End If End Sub
Der Code kann einfach als globales Makro in Word gespeichert werden und in dessen Schnellstartleiste eingefügt werden.
Wie das Hinzufügen in die Schnellzugriffsleiste funktioniert, kann man hier erfahren.