Excel VBA Salva con nome (stampa) in PDF

Questo tutorial dimostrerà come salvare/stampare in un PDF in Excel VBA.

Stampa in PDF

Questa semplice procedura stamperà l'ActiveSheet in un PDF.

123456 Sub SimplePrintToPDF()ActiveSheet.ExportAsFixedFormat Tipo:=xlTypePDF, Filename:="demo.pdf", Quality:=xlQualityStandard, _IncludeDocProperties:=False, IgnorePrintAreas:=False, OpenAfterPublish:=TrueFine sottotitolo

Ho anche creato una funzione con la gestione degli errori, ecc. che stamperà l'ActiveSheet su un PDF:

12345678910111213141516171819202122232425262728293031323334353637383940 Stampa secondaria PDF()Chiama Salva_PDFFine sottotitoloFunzione Save_PDF() As Boolean ' Copia i fogli in un nuovo file PDF per l'invio tramite e-mailDim Thissheet As String, ThisFile As String, PathName As StringDim SvA come stringaApplication.ScreenUpdating = False'Ottieni il nome del file di salvataggioThissheet = ActiveSheet.NameThisFile = ActiveWorkbook.NamePathName = ActiveWorkbook.PathSvAs = PathName & "\" & Thissheet & ".pdf""Imposta qualità di stampa"In caso di errore Riprendi AvantiActiveSheet.PageSetup.PrintQuality = 600Err.ClearIn caso di errore Vai a 0' Indica all'utente come inviareIn caso di errore Vai a RefLibErrorActiveSheet.ExportAsFixedFormat Tipo:=xlTypePDF, Filename:=SvAs, Quality:=xlQualityStandard, IncludeDocProperties:=False, IgnorePrintAreas:=False, OpenAfterPublish:=TrueIn caso di errore Vai a 0Salva solo:MsgBox "Una copia di questo foglio è stata salvata con successo come file .pdf: " & Chr(13) & Chr(13) & SvAs & _"Rivedi il documento .pdf. Se il documento NON ha un bell'aspetto, regola i parametri di stampa e riprova."Salva_PDF = VeroVai a FineMacroRefLibError:MsgBox "Impossibile salvare come PDF. Libreria di riferimento non trovata."Salva_PDF = FalsoFineMacro:Fine funzione

La funzione restituisce VERO o FALSO se la stampa su PDF è andata a buon fine o meno.

Salva e invia tramite e-mail la funzione PDF

Questa funzione salverà l'ActiveSheet come PDF e (opzionalmente) allegherà il PDF a un'e-mail (supponendo che tu abbia installato Outlook):

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748 Sub Test_Salva_PDF()Chiama Send_PDF("SendEmail")Fine sottotitoloFunzione Send_PDF(Azione facoltativa As String = "SaveOnly") As Boolean ' Copia i fogli in un nuovo file PDF per l'invio tramite e-mailDim Thissheet As String, ThisFile As String, PathName As StringDim SvA come stringaApplication.ScreenUpdating = False'Ottieni il nome del file di salvataggioThissheet = ActiveSheet.NameThisFile = ActiveWorkbook.NamePathName = ActiveWorkbook.PathSvAs = PathName & "\" & Thissheet & ".pdf""Imposta qualità di stampa"In caso di errore Riprendi AvantiActiveSheet.PageSetup.PrintQuality = 600Err.ClearIn caso di errore Vai a 0'Istruisci l'utente su come inviareIn caso di errore Vai a RefLibErrorActiveSheet.ExportAsFixedFormat Tipo:=xlTypePDF, Filename:=SvAs, Quality:=xlQualityStandard, IncludeDocProperties:=False, IgnorePrintAreas:=False, OpenAfterPublish:=TrueIn caso di errore Vai a 0' Invia una emailSe azione = "Invia email" AlloraIn caso di errore GoTo SaveOnlyApplication.Dialogs(xlDialogSendMail).ShowIn caso di errore Vai a 0Vai a FineMacroFinisci seSalva solo:MsgBox "Una copia di questo foglio è stata salvata con successo come file .pdf: " & Chr(13) & Chr(13) & SvAs & _"Rivedi il documento .pdf. Se il documento NON ha un bell'aspetto, regola i parametri di stampa e riprova."Send_PDF = VeroVai a FineMacroRefLibError:MsgBox "Impossibile salvare come PDF. Libreria di riferimento non trovata."Send_PDF = FalsoFineMacro:Fine funzione
wave wave wave wave wave