Excel VBA Salvar como (imprimir) para PDF

Este tutorial demonstrará como salvar / imprimir em um PDF no Excel VBA.

Imprimir em PDF

Este procedimento simples imprimirá a ActiveSheet em um PDF.

123456 Sub SimplePrintToPDF ()ActiveSheet.ExportAsFixedFormat Tipo: = xlTypePDF, Nome do arquivo: = "demo.pdf", Qualidade: = xlQualityStandard, _IncludeDocProperties: = False, IgnorePrintAreas: = False, OpenAfterPublish: = TrueEnd Sub

Também criei uma função com tratamento de erros, etc. que imprimirá a ActiveSheet em um PDF:

12345678910111213141516171819202122232425262728293031323334353637383940 Sub PrintPDF ()Chame Save_PDFEnd SubFunção Save_PDF () As Boolean 'Copia as planilhas em um novo arquivo PDF para envio por e-mailDim Thissheet As String, ThisFile As String, PathName As StringDim SvAs As StringApplication.ScreenUpdating = False'Obter o nome do arquivo para salvarThissheet = ActiveSheet.NameThisFile = ActiveWorkbook.NamePathName = ActiveWorkbook.PathSvAs = PathName & "\" & Thissheet & ".pdf"'Definir qualidade de impressãoOn Error Resume NextActiveSheet.PageSetup.PrintQuality = 600Err.ClearNo erro GoTo 0'Instrua o usuário como enviarEm erro GoTo RefLibErrorActiveSheet.ExportAsFixedFormat Tipo: = xlTypePDF, Nome do arquivo: = SvAs, Qualidade: = xlQualityStandard, IncludeDocProperties: = False, IgnorePrintAreas: = False, OpenAfterPublish: = TrueNo erro GoTo 0SaveOnly:MsgBox "Uma cópia desta planilha foi salva com sucesso como um arquivo .pdf:" & Chr (13) & Chr (13) & SvAs & _"Revise o documento .pdf. Se o documento NÃO parecer bom, ajuste os parâmetros de impressão e tente novamente."Save_PDF = TrueGoTo EndMacroRefLibError:MsgBox "Não foi possível salvar como PDF. Biblioteca de referência não encontrada."Save_PDF = FalseEndMacro:Função Final

A função retorna TRUE ou FALSE se a impressão em PDF foi bem-sucedida ou não.

Função Salvar e enviar PDF por e-mail

Esta função salvará o ActiveSheet como PDF e (opcionalmente) anexará o PDF a um e-mail (supondo que você tenha o Outlook instalado):

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748 Sub Test_Save_PDF ()Ligue para Send_PDF ("SendEmail")End SubFunção Send_PDF (Ação opcional As String = "SaveOnly") As Boolean 'Copia as planilhas em um novo arquivo PDF para envio por e-mailDim Thissheet As String, ThisFile As String, PathName As StringDim SvAs As StringApplication.ScreenUpdating = False'Obter nome de arquivo para salvarThissheet = ActiveSheet.NameThisFile = ActiveWorkbook.NamePathName = ActiveWorkbook.PathSvAs = PathName & "\" & Thissheet & ".pdf"'Definir qualidade de impressãoOn Error Resume NextActiveSheet.PageSetup.PrintQuality = 600Err.ClearNo erro GoTo 0'Instrua o usuário como enviarEm erro GoTo RefLibErrorActiveSheet.ExportAsFixedFormat Tipo: = xlTypePDF, Nome do arquivo: = SvAs, Qualidade: = xlQualityStandard, IncludeDocProperties: = False, IgnorePrintAreas: = False, OpenAfterPublish: = TrueNo erro GoTo 0' Enviar emailSe action = "SendEmail" EntãoEm caso de erro, GoTo SaveOnlyApplication.Dialogs (xlDialogSendMail) .ShowNo erro GoTo 0GoTo EndMacroFim seSaveOnly:MsgBox "Uma cópia desta planilha foi salva com sucesso como um arquivo .pdf:" & Chr (13) & Chr (13) & SvAs & _"Revise o documento .pdf. Se o documento NÃO parecer bom, ajuste os parâmetros de impressão e tente novamente."Send_PDF = TrueGoTo EndMacroRefLibError:MsgBox "Não foi possível salvar como PDF. Biblioteca de referência não encontrada."Send_PDF = FalseEndMacro:Função Final
wave wave wave wave wave