PDF Datei per VBA erzeugen

Seit Excel 2007 können PDF-Dateien direkt aus Excel heraus erzeugt werden. Dazu muss die Datei einfach über die Funktion Speichern unter als PDF-Dokument abgespeichert werden.

Diese manuelle Arbeit lässt sich auch per VBA erledigen. Verwenden Sie dazu folgenden Code:

ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:="C:\TEMP\Testdatei.pdf" _
  , Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas _
  :=False, OpenAfterPublish:=True

Damit wird die PDF-Datei mit dem Namen "Testdatei.pdf" im Verzeichnis C:\TEMP erzeugt.

Ab Excel 2010 steht ein weiteres schönes Feature zur Verfügung. Über das Menü Datei / Speichern und senden / Als PDF-Senden kann ein Arbeitsblatt, ein Tabellenausschnitt oder eine komplette Datei als PDF-Datei erzeugt und direkt per E-Mail versendet werden.

 

Auch diese Funktion lässt sich per VBA automatisiseren. Verwenden Sie dazu den folgenden Code:

Sub e_Mail()

'** Dimensionierung der Variablen
Dim strPDF As String
Dim OutlookApp As Object, strEmail As Object

'** Vorgaben definieren
Set OutlookApp = CreateObject("Outlook.Application")
Set strEmail = OutlookApp.CreateItem(0)

'** PDF erzeugen
ActiveWorkbook.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
  ThisWorkbook.Path & "\Excel-File.pdf", Quality:=xlQualityStandard _
  , IncludeDocProperties:=False, IgnorePrintAreas:=False, OpenAfterPublish _
  :=False

'** E-Mail versenden
strPDF = ThisWorkbook.Path & "\Excel-File.pdf"
With strEmail
  .To = "Diese E-Mail-Adresse ist vor Spambots geschützt! Zur Anzeige muss JavaScript eingeschaltet sein!"
  .Subject = "PDF als Anlage" 'Betreffzeile
  .body = "Als Anlage die PDF-Datei"
  .Attachments.Add strPDF
  .Display
  '.Send 'Damit wir die E-Mail sofort versendet
  Kill strPDF
End With
  
'** Objektvariablen wieder löschen
Set OutlookApp = Nothing
Set strEmail = Nothing
End Sub

Damit wird die PDF-Datei in einem temporären Verzeichnis erzeugt. Anschließend wird in Outlook eine neue E-Mail erzeugt an welche die PDF-Datei bereits angehängt ist.

Die Beispieldatei kann über den folgenden Link herunter geladen werden.