Excel VBA – Speichern (Drucken) als PDF

Written by

Editorial Team

Reviewed by

Steve Rynearson

Translated by

Zakarya El Oirzadi

Last updated on Januar 21, 2022

In diesem Tutorial zeigen wir Ihnen, wie Sie in Excel/VBA ein Blatt in ein PDF-Dokument speichern/drucken können.

In PDF drucken

Diese einfache Prozedur druckt das Aktuelle Blatt (ActiveSheet) in eine PDF-Datei.

Sub EinfachesDruckenInPDF()

ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:="demo.pdf", Quality:=xlQualityStandard, _
  IncludeDocProperties:=False, IgnorePrintAreas:=False, OpenAfterPublish:=True

End Sub

Ich habe auch eine Funktion mit Fehlerbehandlung usw. erstellt, die das ActiveSheet in eine PDF-Datei druckt:

Sub DruckenInPDF()
    Call PDF_Speichern
End Sub

Function PDF_Speichern() As Boolean ' Kopiert Blätter in eine neue PDF-Datei für den E-Mail-Versand
    Dim DiesesBlatt As String, DieseDatei As String, PfadName As String
    Dim SpeichernAls As String

Application.ScreenUpdating = False

' Dateinamen zum Speichern abrufen
    DiesesBlatt = ActiveSheet.Name
    DieseDatei = ActiveWorkbook.Name
    PfadName = ActiveWorkbook.Path
    SpeichernAls = PfadName & "\" & DiesesBlatt & ".pdf"

'Druckqualität einstellen
    On Error Resume Next
    ActiveSheet.PageSetup.PrintQuality = 600
    Err.Clear
    On Error GoTo 0

' Benutzer anweisen, wie er senden soll
    On Error GoTo RefLibFehler
    ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=SpeichernAls, Quality:=xlQualityStandard, IncludeDocProperties:=False, IgnorePrintAreas:=False, OpenAfterPublish:=True
    On Error GoTo 0

NurSpeichern:
    MsgBox "Eine Kopie dieses Blattes wurde erfolgreich als .pdf-Datei gespeichert: " & vbCrLf & vbCrLf & SpeichernAls & _
        "Überprüfen Sie das .pdf-Dokument. Wenn das Dokument NICHT gut aussieht, passen Sie Ihre Druckparameter an und versuchen Sie es erneut."
        
    PDF_Speichern = True
    GoTo EndMacro
    
RefLibFehler:
    MsgBox "Kann nicht als PDF gespeichert werden. Referenzbibliothek nicht gefunden."
    PDF_Speichern = False
EndMacro:
End Function

Die Funktion gibt TRUE oder FALSE zurück, wenn der Druck in PDF erfolgreich war oder nicht.

Funktion zum PDF speichern und per E-Mail versenden

Diese Funktion speichert das aktuelle Blatt (ActiveSheet) als PDF und hängt das PDF (optional) an eine E-Mail an (vorausgesetzt, Sie haben Outlook installiert):

Sub PDF_Speichern_Test()
    Call PDF_Senden("Email senden")
End Sub

Function PDF_Senden(Optional Aktion As String = "NurSpeichern") As Boolean ' Kopiert Blätter in eine neue PDF-Datei zum Versenden per E-Mail
    Dim DiesesBlatt As String, DieseDatei As String, PfadName As String
    Dim SpeichernAls As String

Application.ScreenUpdating = False

' Dateinamen zum Speichern abrufen
    DiesesBlatt = ActiveSheet.Name
    DieseDatei = ActiveWorkbook.Name
    PfadName = ActiveWorkbook.Path
    SpeichernAls = PathName & "\" & DiesesBlatt & ".pdf"

'Druckqualität einstellen
    On Error Resume Next
    ActiveSheet.PageSetup.PrintQuality = 600
    Err.Clear
    On Error GoTo 0

' Benutzer anweisen, wie er senden soll
    On Error GoTo RefLibFehler
    ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=SpeichernAls, Quality:=xlQualityStandard, IncludeDocProperties:=False, IgnorePrintAreas:=False, OpenAfterPublish:=True
    On Error GoTo 0
    
' E-Mail senden
    If action = "Email senden" Then
        On Error GoTo NurSpeichern
        Set olApp = CreateObject("Outlook.Application")
        Set olEmail = olApp.CreateItem(olMailItem)
        
        With olEmail
            .Subject = DiesesBlatt & ".pdf"
            .Attachments.Add SpeichernAls
            .Display
        End With
        On Error GoTo 0
        GoTo EndMacro
    End If

NurSpeichern:
    MsgBox "Eine Kopie dieses Blattes wurde erfolgreich als .pdf-Datei gespeichert: " & vbCrLf & vbCrLf & SvAs & _
        "Überprüfen Sie das .pdf-Dokument. Wenn das Dokument NICHT gut aussieht, passen Sie Ihre Druckparameter an und versuchen Sie es erneut."
        
    PDF_Senden = True
    GoTo EndMacro
    
RefLibFehler:
    MsgBox "Konnte nicht als PDF gespeichert werden. Referenzbibliothek nicht gefunden."
    PDF_Senden = False
EndMacro:
End Function

VBA Coding Made Easy

Stop searching for VBA code online. Learn more about AutoMacro - A VBA Code Builder that allows beginners to code procedures from scratch with minimal coding knowledge and with many time-saving features for all users! vba save as


Learn More!
vba-free-addin

Add-In für VBA-Code-Beispiele

Auf alle Code-Beispiele aus unserer Website einfach zugreifen.

Navigieren Sie einfach zum Menü, klicken Sie darauf und der Code wird direkt in Ihr Modul eingefügt. .xlam add-in.

(Keine Installation erforderlich!)

Kostenloser Download

Return to VBA Code Examples