Inhoudsopgave
Deze zelfstudie laat zien hoe u kunt opslaan / afdrukken naar een PDF in Excel VBA.
Afdrukken naar PDF
Deze eenvoudige procedure drukt de ActiveSheet af naar een PDF.
123456 | Sub SimplePrintToPDF()ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Bestandsnaam:="demo.pdf", Kwaliteit:=xlQualityStandard, _IncludeDocProperties:=False, IgnorePrintAreas:=False, OpenAfterPublish:=TrueEinde sub |
Ik heb ook een functie gemaakt met foutafhandeling, enz. die de ActiveSheet naar een PDF zal afdrukken:
12345678910111213141516171819202122232425262728293031323334353637383940 | Sub PrintPDF()Bel Save_PDFEinde subFunctie Save_PDF() As Boolean ' Kopieert bladen naar een nieuw PDF-bestand voor e-mailenDim dit blad als tekenreeks, dit bestand als tekenreeks, padnaam als tekenreeksSvA's dimmen als stringApplication.ScreenUpdating = False'Geef de naam voor het opslaan van bestanden op'Dit blad = ActiveSheet.NameThisFile = ActiveWorkbook.NamePadnaam = ActiveWorkbook.PathSvAs = Padnaam & "\" & Dit blad & ".pdf"'Afdrukkwaliteit instellen'Bij fout Hervatten volgendeActiveSheet.PageSetup.PrintQuality = 600Err.ClearBij fout Ga naar 0' Instrueer gebruiker hoe te verzendenBij fout Ga naar RefLibErrorActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=SvAs, Quality:=xlQualityStandard, IncludeDocProperties:=False, IgnorePrintAreas:=False, OpenAfterPublish:=TrueBij fout Ga naar 0Alleen opslaan:MsgBox "Een kopie van dit blad is succesvol opgeslagen als .pdf-bestand: " & Chr(13) & Chr(13) & SvAs & _"Bekijk het .pdf-document. Als het document er NIET goed uitziet, pas dan uw afdrukparameters aan en probeer het opnieuw."Save_PDF = TrueGa Naar EindeMacroRefLibFout:MsgBox "Kan niet opslaan als PDF. Referentiebibliotheek niet gevonden."Save_PDF = FalseEindeMacro:Functie beëindigen |
De functie retourneert TRUE of FALSE als het afdrukken naar PDF is gelukt of niet.
Opslaan en e-mail PDF-functie
Deze functie slaat de ActiveSheet op als een PDF en voegt (optioneel) de PDF toe aan een e-mail (ervan uitgaande dat Outlook is geïnstalleerd):
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748 | Subtest_Save_PDF()Bel Send_PDF ("SendEmail")Einde subFunctie Send_PDF(Optionele actie As String = "SaveOnly") As Boolean ' Kopieert bladen naar een nieuw PDF-bestand voor e-mailenDim dit blad als tekenreeks, dit bestand als tekenreeks, padnaam als tekenreeksSvA's dimmen als stringApplication.ScreenUpdating = False'Geef de naam voor het opslaan van bestanden op'Dit blad = ActiveSheet.NameThisFile = ActiveWorkbook.NamePadnaam = ActiveWorkbook.PathSvAs = Padnaam & "\" & Dit blad & ".pdf"'Afdrukkwaliteit instellen'Bij fout Hervatten volgendeActiveSheet.PageSetup.PrintQuality = 600Err.ClearBij fout Ga naar 0' Instrueer gebruiker hoe te verzendenBij fout Ga naar RefLibErrorActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=SvAs, Quality:=xlQualityStandard, IncludeDocProperties:=False, IgnorePrintAreas:=False, OpenAfterPublish:=TrueBij fout Ga naar 0' E-mail verzendenIf action = "SendEmail" DanBij fout Ga naar Alleen opslaanApplication.Dialogs(xlDialogSendMail).ToonBij fout Ga naar 0Ga Naar EindeMacroStop alsAlleen opslaan:MsgBox "Een kopie van dit blad is succesvol opgeslagen als .pdf-bestand: " & Chr(13) & Chr(13) & SvAs & _"Bekijk het .pdf-document. Als het document er NIET goed uitziet, pas dan uw afdrukparameters aan en probeer het opnieuw."Send_PDF = TrueGa Naar EindeMacroRefLibFout:MsgBox "Kan niet opslaan als PDF. Referentiebibliotheek niet gevonden."Send_PDF = FalseEindeMacro:Functie beëindigen |