Excel VBA Enregistrer sous (Imprimer) au format PDF

Ce didacticiel montrera comment enregistrer/imprimer au format PDF dans Excel VBA.

Imprimer en PDF

Cette procédure simple imprimera l'ActiveSheet au format PDF.

123456 Sous SimpleImpressionVersPDF()ActiveSheet.ExportAsFixedFormat Type : =xlTypePDF, Nom de fichier :="demo.pdf", Qualité :=xlQualityStandard, _IncludeDocProperties:=False, IgnorePrintAreas:=False, OpenAfterPublish:=TrueFin du sous-marin

J'ai également créé une fonction avec gestion des erreurs, etc. qui imprimera l'ActiveSheet au format PDF :

12345678910111213141516171819202122232425262728293031323334353637383940 Sous-impressionPDF()Appelez Save_PDFFin du sous-marinFonction Save_PDF() As Boolean ' Copie les feuilles dans un nouveau fichier PDF pour envoi par e-mailDim Thissheet As String, ThisFile As String, PathName As StringDim SvAs en tant que chaîneApplication.ScreenUpdating = Faux' Obtenir le nom d'enregistrement du fichierThissheet = ActiveSheet.NameCeFichier = ActiveWorkbook.NomPathName = ActiveWorkbook.PathSvAs = PathName & "\" & Thissheet & ".pdf"'Définir la qualité d'impressionEn cas d'erreur Reprendre ensuiteActiveSheet.PageSetup.PrintQuality = 600Err.EffacerEn cas d'erreur GoTo 0' Indiquer à l'utilisateur comment envoyerEn cas d'erreur GoTo RefLibErrorActiveSheet.ExportAsFixedFormat Type :=xlTypePDF, Nom de fichier :=SvAs, Qualité :=xlQualityStandard, IncludeDocProperties :=False, IgnorePrintAreas :=False, OpenAfterPublish :=TrueEn cas d'erreur GoTo 0Enregistrer uniquement :MsgBox "Une copie de cette feuille a été enregistrée avec succès en tant que fichier .pdf : " & Chr(13) & Chr(13) & SvAs & _« Examinez le document .pdf. Si le document n'a PAS l'air bien, ajustez vos paramètres d'impression et réessayez. »Save_PDF = VraiAller à FinMacroRefLibError :MsgBox "Impossible d'enregistrer au format PDF. Bibliothèque de référence introuvable."Save_PDF = FauxFinMacro :Fonction de fin

La fonction renvoie VRAI ou FAUX si l'impression au format PDF a réussi ou non.

Fonction d'enregistrement et d'envoi par e-mail du PDF

Cette fonction enregistrera l'ActiveSheet au format PDF et (éventuellement) joindra le PDF à un e-mail (en supposant que Outlook soit installé) :

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748 Sous-test_Enregistrer_PDF()Appelez Send_PDF("SendEmail")Fin du sous-marinFonction Send_PDF (action facultative As String = "SaveOnly") As Boolean ' Copie les feuilles dans un nouveau fichier PDF pour envoi par e-mailDim Thissheet As String, ThisFile As String, PathName As StringDim SvAs en tant que chaîneApplication.ScreenUpdating = Faux' Obtenir le nom d'enregistrement du fichierThissheet = ActiveSheet.NameCeFichier = ActiveWorkbook.NomPathName = ActiveWorkbook.PathSvAs = PathName & "\" & Thissheet & ".pdf"'Définir la qualité d'impressionEn cas d'erreur Reprendre ensuiteActiveSheet.PageSetup.PrintQuality = 600Err.EffacerEn cas d'erreur GoTo 0' Indiquer à l'utilisateur comment envoyerEn cas d'erreur GoTo RefLibErrorActiveSheet.ExportAsFixedFormat Type :=xlTypePDF, Nom de fichier :=SvAs, Qualité :=xlQualityStandard, IncludeDocProperties :=False, IgnorePrintAreas :=False, OpenAfterPublish :=TrueEn cas d'erreur GoTo 0' Envoyer un e-mailSi action = "EnvoyerEmail" AlorsEn cas d'erreur GoTo SaveOnlyApplication.Dialogs(xlDialogSendMail).AfficherEn cas d'erreur GoTo 0Aller à FinMacroFin siEnregistrer uniquement :MsgBox "Une copie de cette feuille a été enregistrée avec succès en tant que fichier .pdf : " & Chr(13) & Chr(13) & SvAs & _« Examinez le document .pdf. Si le document n'a PAS l'air bien, ajustez vos paramètres d'impression et réessayez. »Envoyer_PDF = VraiAller à FinMacroRefLibError :MsgBox "Impossible d'enregistrer au format PDF. Bibliothèque de référence introuvable."Envoyer_PDF = FauxFinMacro :Fonction de fin
wave wave wave wave wave