Tento tutoriál předvede, jak ukládat / tisknout do formátu PDF v aplikaci Excel VBA.
Tisk do PDF
Tento jednoduchý postup vytiskne ActiveSheet do PDF.
123456 | Dílčí SimplePrintToPDF ()ActiveSheet.ExportAsFixedFormat Typ: = xlTypePDF, Název souboru: = "demo.pdf", Kvalita: = xlQualityStandard, _IncludeDocProperties: = False, IgnorePrintAreas: = False, OpenAfterPublish: = TrueEnd Sub |
Také jsem vytvořil funkci se zpracováním chyb atd., Která vytiskne ActiveSheet do PDF:
12345678910111213141516171819202122232425262728293031323334353637383940 | Dílčí tiskPDF ()Volejte Save_PDFEnd SubFunkce Save_PDF () As Boolean 'Zkopíruje listy do nového souboru PDF pro zasílání e-mailemDim Thissheet As String, ThisFile As String, PathName As StringDim SvAs jako řetězecApplication.ScreenUpdating = False„Získat název pro uložení souboruThissheet = ActiveSheet.NameThisFile = ActiveWorkbook.NamePathName = ActiveWorkbook.PathSvAs = PathName & "\" & Thissheet & ".pdf"'Nastavit kvalitu tiskuPři chybě Pokračovat DalšíActiveSheet.PageSetup.PrintQuality = 600Err.JasnéPři chybě GoTo 0'Poučte uživatele o odesláníPři chybě GoTo RefLibErrorActiveSheet.ExportAsFixedFormat Typ: = xlTypePDF, Název souboru: = SvAs, Kvalita: = xlQualityStandard, IncludeDocProperties: = False, IgnorePrintAreas: = False, OpenAfterPublish: = TruePři chybě GoTo 0SaveOnly:MsgBox "Kopie tohoto listu byla úspěšně uložena jako soubor .pdf:" & Chr (13) & Chr (13) & SvAs & _„Zkontrolujte dokument .pdf. Pokud dokument NEVYDÁVÁ dobře, upravte parametry tisku a zkuste to znovu.“Save_PDF = TrueGoTo EndMacroRefLibError:MsgBox "Nelze uložit jako PDF. Referenční knihovna nenalezena."Save_PDF = FalseEndMacro:Koncová funkce |
Funkce vrátí hodnotu TRUE nebo FALSE, pokud byl tisk do PDF úspěšný nebo ne.
Funkce uložení a odeslání e -mailu PDF
Tato funkce uloží ActiveSheet jako PDF a (volitelně) připojí PDF k e -mailu (za předpokladu, že máte nainstalovaný Outlook):
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748 | Dílčí test_Uložit_PDF ()Volat Send_PDF („SendEmail“)End SubFunkce Send_PDF (volitelná akce jako řetězec = "SaveOnly") jako Boolean 'Zkopíruje listy do nového souboru PDF pro e-mailDim Thissheet As String, ThisFile As String, PathName As StringDim SvAs jako řetězecApplication.ScreenUpdating = False„Získat název pro uložení souboruThissheet = ActiveSheet.NameThisFile = ActiveWorkbook.NamePathName = ActiveWorkbook.PathSvAs = PathName & "\" & Thissheet & ".pdf"'Nastavit kvalitu tiskuPři chybě Pokračovat DalšíActiveSheet.PageSetup.PrintQuality = 600Err.JasnéPři chybě GoTo 0'Poučte uživatele o odesláníPři chybě GoTo RefLibErrorActiveSheet.ExportAsFixedFormat Typ: = xlTypePDF, Název souboru: = SvAs, Kvalita: = xlQualityStandard, IncludeDocProperties: = False, IgnorePrintAreas: = False, OpenAfterPublish: = TruePři chybě GoTo 0' Poslat e-mailemIf action = "SendEmail" ThenOn Error GoTo SaveOnlyApplication.Dialogs (xlDialogSendMail) .ShowPři chybě GoTo 0GoTo EndMacroKonec IfSaveOnly:MsgBox "Kopie tohoto listu byla úspěšně uložena jako soubor .pdf:" & Chr (13) & Chr (13) & SvAs & _„Zkontrolujte dokument .pdf. Pokud dokument NEVYDÁVÁ dobře, upravte parametry tisku a zkuste to znovu.“Send_PDF = TrueGoTo EndMacroRefLibError:MsgBox "Nelze uložit jako PDF. Referenční knihovna nenalezena."Send_PDF = FalseEndMacro:Koncová funkce |