Excel VBA Save As (Print) în PDF

Acest tutorial va arăta cum să salvați / tipăriți într-un PDF în Excel VBA.

Imprimați în PDF

Această procedură simplă va imprima ActiveSheet într-un PDF.

123456 Sub SimplePrintToPDF ()ActiveSheet.ExportAsFixedFormat Type: = xlTypePDF, File name: = "demo.pdf", Quality: = xlQualityStandard, _IncludeDocProperties: = False, IgnorePrintAreas: = False, OpenAfterPublish: = TrueSfârșitul Sub

De asemenea, am creat o funcție cu gestionarea erorilor etc., care va imprima ActiveSheet într-un PDF:

12345678910111213141516171819202122232425262728293031323334353637383940 Sub PrintPDF ()Apelați Save_PDFSfârșitul SubFuncția Save_PDF () Ca boolean „Copiază foile într-un fișier PDF nou pentru e-mailDim Thissheet As String, ThisFile As String, PathName As StringDim SvAs As StringApplication.ScreenUpdating = Fals„Obțineți numele de salvare a fișieruluiThissheet = ActiveSheet.NameThisFile = ActiveWorkbook.NamePathName = ActiveWorkbook.PathSvAs = PathName & "\" & Thissheet & ".pdf"„Setați calitatea tipăririiLa eroare Reluați în continuareActiveSheet.PageSetup.PrintQuality = 600Err.ClarLa eroare GoTo 0„Indicați utilizatorului cum să trimităOn Error GoTo RefLibErrorActiveSheet.ExportAsFixedFormat Type: = xlTypePDF, File name: = SvAs, Quality: = xlQualityStandard, IncludeDocProperties: = False, IgnorePrintAreas: = False, OpenAfterPublish: = TrueLa eroare GoTo 0SaveOnly:MsgBox "O copie a acestei foi a fost salvată cu succes ca fișier .pdf:" & Chr (13) & Chr (13) & SvAs & _"Consultați documentul .pdf. Dacă documentul NU arată bine, ajustați parametrii de imprimare și încercați din nou."Save_PDF = AdevăratGoTo EndMacroRefLibError:MsgBox "Imposibil de salvat ca PDF. Biblioteca de referință nu a fost găsită."Save_PDF = FalsEndMacro:Funcția de sfârșit

Funcția returnează TRUE sau FALSE dacă tipărirea în PDF a avut succes sau nu.

Salvați și trimiteți prin e-mail funcția PDF

Această funcție va salva ActiveSheet ca PDF și (opțional) va atașa PDF-ul la un e-mail (presupunând că aveți Outlook instalat):

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748 Sub Test_Save_PDF ()Apelați Send_PDF („SendEmail”)Sfârșitul SubFuncția Send_PDF (Acțiune opțională As String = "SaveOnly") Ca Boolean 'Copiază foile într-un nou fișier PDF pentru e-mailDim Thissheet As String, ThisFile As String, PathName As StringDim SvAs As StringApplication.ScreenUpdating = Fals„Obțineți numele de salvare a fișieruluiThissheet = ActiveSheet.NameThisFile = ActiveWorkbook.NamePathName = ActiveWorkbook.PathSvAs = PathName & "\" & Thissheet & ".pdf"„Setați calitatea tipăririiLa eroare Reluați în continuareActiveSheet.PageSetup.PrintQuality = 600Err.ClarLa eroare GoTo 0„Indicați utilizatorului cum să trimităOn Error GoTo RefLibErrorActiveSheet.ExportAsFixedFormat Type: = xlTypePDF, File name: = SvAs, Quality: = xlQualityStandard, IncludeDocProperties: = False, IgnorePrintAreas: = False, OpenAfterPublish: = TrueLa eroare GoTo 0' Trimite emailIf action = "SendEmail" AtunciOn Error GoTo SaveOnlyApplication.Dialogs (xlDialogSendMail) .ShowLa eroare GoTo 0GoTo EndMacroEnd IfSaveOnly:MsgBox "O copie a acestei foi a fost salvată cu succes ca fișier .pdf:" & Chr (13) & Chr (13) & SvAs & _"Consultați documentul .pdf. Dacă documentul NU arată bine, ajustați parametrii de imprimare și încercați din nou."Send_PDF = AdevăratGoTo EndMacroRefLibError:MsgBox "Imposibil de salvat ca PDF. Biblioteca de referință nu a fost găsită."Send_PDF = FalseEndMacro:Funcția de sfârșit
wave wave wave wave wave