Excel VBA – Speichern (Drucken) als PDF
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!Learn More!