Excel VBA per stampare come PDF e salvare con nome file automatico

  • Condividi Questo
Hugh West

L'esportazione di un'azienda presenta dei vantaggi Excel foglio di calcolo come PDF Cambiando il file in formato PDF, potremo stamparlo e condividerlo con vari contatti professionali. I PDF sono uno standard affidabile per l'esportazione di documenti che si sente il bisogno di condividere con altri o pubblicizzare. In questo articolo, mostreremo alcuni esempi di VBA per stampare in PDF e salvare con un nome di file automatico.

Scarica il quaderno di esercizi

Potete scaricare il libro di lavoro ed esercitarvi con loro.

VBA Stampa su PDF.xlsm

9 esempi di Excel VBA per stampare come PDF e salvare con nome file automatico in Excel

Possiamo facilmente stampare un file di Excel come PDF e salvare il file con un nome automatico, utilizzando la barra degli strumenti di Excel. Ma sarebbe più facile con Excel VBA Abbiamo solo bisogno della VBA Non abbiamo bisogno di molti clic per completare l'operazione e questo ci fa risparmiare tempo.

Visual Basic per le applicazioni ( VBA ) è un modello di programmazione e un programma isolato che è più comunemente visto in Microsoft Office Si tratta di uno strumento analitico, spesso disponibile come Componenti aggiuntivi di Excel che ottimizza le operazioni manuali, come ad esempio i lavori monotoni e che richiedono molto tempo, e può anche generare CSV Vediamo quindi alcuni esempi per stampare il file excel come PDF con il nome automatico del file.

1. Stampare la cartella di lavoro in PDF & Salvare automaticamente il nome del file in Excel

Supponiamo di voler stampare l'intera cartella di lavoro e di voler salvare il nome del file così come lo abbiamo inserito nel nostro codice. Ora, supponiamo di voler salvare un file PDF sul nostro computer Disco locale (E:) Come si può vedere nell'immagine sottostante, il percorso non contiene alcun file pdf. Dopo aver eseguito il codice VBA, saremo in grado di visualizzare il file desiderato. PDF in quella posizione sul nostro PC.

Con Excel VBA , gli utenti possono facilmente utilizzare il codice che agisce come menu di excel dalla barra multifunzione. Per utilizzare il codice VBA per stampare pdf e salvare con un nome di file automatico, seguiamo la procedura.

FASI:

  • In primo luogo, andare alla pagina Sviluppatore dalla barra multifunzione.
  • In secondo luogo, dal Codice categoria, fare clic su Visual Basic per aprire il Editor Visual Basic . Oppure premere Alt + F11 per aprire il Editor Visual Basic .

  • Invece di fare questo, si può semplicemente fare clic con il tasto destro del mouse sul foglio di lavoro e andare su Visualizza il codice Questo vi porterà anche a Editor Visual Basic .

  • Questo apparirà nella schermata Editor Visual Basic dove scriviamo i nostri codici per creare una tabella dall'intervallo.
  • In terzo luogo, fare clic su Modulo dal Inserire barra dei menu a discesa.

  • In questo modo si creerà un Modulo nella cartella di lavoro.
  • Copiare e incollare il file VBA codice mostrato di seguito.

Codice VBA:

 Sub Print_Workbook() Dim loc As String loc = "E:\Workbook.pdf" ActiveWorkbook.ExportAsFixedFormat Type:=xlTypePDF, _ filename:=loc End Sub 
  • Eseguite il codice premendo il tasto F5 sulla tastiera.

  • Infine, è possibile vedere il nome di un file PDF, Libro di lavoro si trova ora in quel percorso sul computer. Ciò significa che il nome del file viene salvato automaticamente.

  • Infine, se si torna alla cartella di lavoro, si possono vedere alcune linee tratteggiate, perché il file è ora pronto per la stampa.

Spiegazione del codice VBA

 Sub Stampa_Libro_di_Lavoro() 

Sub è una parte di codice che viene utilizzata per gestire il lavoro nel codice ma non restituisce alcun valore. È anche conosciuta come sottoprocedura. Quindi chiamiamo la nostra procedura Stampa_Libro_di_Lavoro() .

 loc = "E:\Workbook.pdf" 

Questa riga serve per la posizione e il nome del file pdf. Qui salviamo il nostro file in E: sul nostro computer e nominare il file Libro di lavoro .

 ActiveWorkbook.ExportAsFixedFormat Tipo:=xlTypePDF, nome file:=loc 

Questa riga di codice serve per esportare il file excel in formato PDF e renderlo pronto per la stampa.

 Fine Sub 

In questo modo si conclude la procedura.

Per saperne di più: Esportare Excel in PDF con collegamenti ipertestuali (2 metodi rapidi)

2. Salvare automaticamente il foglio di lavoro attivo in formato PDF

Vediamo un altro esempio di stampa di un foglio attivo in un pdf e di salvataggio automatico del nome del file utilizzando Excel VBA .

FASI:

  • Per prima cosa, andare alla pagina Sviluppare r dalla barra multifunzione.
  • In secondo luogo, fare clic su Visual Basic per aprire il Editor Visual Basic .
  • Un altro modo per aprire il file Editor Visual Basic è semplicemente premere Alt + F11 .
  • Oppure, fare clic con il tasto destro del mouse sul foglio, quindi selezionare Codice .
  • Successivamente, andare a Inserire e selezionare Modulo dal menu a discesa.
  • Si aprirà la finestra di Visual Basic.
  • Successivamente, copiare e incollare il file Codice VBA di seguito.

Codice VBA:

 Sub Print_Sheet() Dim loc As String loc = "E:\Worksheet.pdf" ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, _ filename:=loc End Sub 
  • Inoltre, premere il tasto Tasto F5 o fare clic sul pulsante Esegui Sub per eseguire il codice.

  • Analogamente all'esempio precedente, il file viene salvato come PDF con il nome automatico del file.

Se leggete esempio1 spiegazione del codice, capirete anche questo.

Per saperne di più: Macro di Excel: Salva come PDF con la data nel nome del file (4 esempi)

3. Stampare file PDF da Excel con VBA in Range

Vediamo un altro esempio di utilizzo di Excel VBA per stampare un foglio attivo in formato pdf e salvare automaticamente il nome del file.

FASI:

  • Per iniziare, fare clic sul pulsante Sviluppatore sulla barra multifunzione.
  • In secondo luogo, lanciare il programma Editor Visual Basic facendo clic su Visual Basic .
  • In alternativa, è possibile accedere alla pagina Editor Visual Basic premendo Alt + F11 .
  • Oppure, fare clic con il tasto destro del mouse sul foglio e scegliere Visualizza il codice dal menu.
  • Successivamente, scegliere il Modulo dalla casella a discesa sotto Inserire .
  • Verrà visualizzata la finestra di Visual Basic.
  • Scrivete il codice lì.

Codice VBA:

 Sub PrntPDF() ActiveWindow.SelectedSheets.PrintOut Copies:=1, _ Collate:=True, ActivePrinter:="Adobe PDF" Dim fnam As String fnam = Range("B4").Value End Sub 
  • Infine, premere il tasto Tasto F5 per eseguire il codice.

  • Successivamente, è possibile vedere che un file PDF con il nome Workbook è stato aggiunto a quella posizione sul computer. Di conseguenza, il nome del file viene conservato automaticamente.

Per saperne di più: Stampa di un intervallo in PDF con VBA in Excel (5 esempi più semplici)

4. Excel VBA per eseguire il loop su un foglio selezionato e stampare PDF

Vediamo un altro modo per stampare in PDF e salvare automaticamente il nome del file.

FASI:

  • Per iniziare, aprire la barra multifunzione e selezionare la voce Sviluppatore opzione.
  • Quindi, per accedere al file Editor Visual Basic , fare clic su Visual Basic .
  • Premendo Alt + F11 porterà anche la finestra di dialogo Editor Visual Basic .
  • In alternativa, fare clic con il tasto destro del mouse il foglio e scegliere Visualizza il codice dal menu che appare.
  • Ora, dal Inserire opzione a discesa, scegliere Modulo .
  • Quindi copiare e incollare il file VBA codice che segue.

Codice VBA:

 Sub PrntPDF1() Dim wrksht As Worksheet Dim sht As Variant Set sht = ActiveWindow.SelectedSheets For Each wrksht In sht wrksht.Select wrksht.ExportAsFixedFormat Type:=xlTypePDF, _ filename:=ThisWorkbook.Path & "/" & wrksht.Name & ".pdf" Next wrksht sht.Select End Sub 
  • Eseguite il codice premendo il tasto F5 chiave.

  • Alla fine, si può vedere che un file PDF della cartella di lavoro è stato caricato in quell'area del computer. Di conseguenza, il nome del file viene mantenuto automaticamente.

Il file verrà salvato con il numero di foglio della cartella di lavoro.

Spiegazione del codice VBA

 For Each wrksht In sht wrksht.Select wrksht.ExportAsFixedFormat Type:=xlTypePDF, filename:=ThisWorkbook.Path & "/" & wrksht.Name & ".pdf" Next wrksht 

Questa riga di codice del ciclo for serve a esportare il file excel in formato pdf e a stampare il file.

Per saperne di più: Excel VBA: Esportazione in formato PDF come formato fisso con adattamento alla pagina (3 esempi)

5. Stampare in PDF e salvare il nome del file istintivamente in Excel

Ora, date un'occhiata a un altro metodo VBA di Excel per salvare i file excel in pdf e assegnare un nome automatico al file.

FASI:

  • Per iniziare, aprire la barra multifunzione e scegliere Sviluppatore dal menu a discesa.
  • Quindi, selezionare Visual Basic per aprire il Editor Visual Basic .
  • Il Editor Visual Basic si può accedere anche premendo Alt + F11 .
  • In alternativa, è possibile fare clic con il tasto destro del mouse il foglio e selezionare Visualizza il codice dal menu a comparsa.
  • Successivamente, selezionare Modulo dal Inserire menu a discesa.
  • Inoltre, copiare e incollare il seguente codice VBA.

Codice VBA:

 Sub PrntPDF2() Dim loc As String loc = "E:\Sheet6.pdf" ActiveSheet.ExportAsFixedFormat _ Type:=xlTypePDF, _ filename:=loc, _ OpenAfterPublish:=False, _ IncludeDocProperties:=True, _ IgnorePrintAreas:=False, _ Quality:=xlQualityStandard, _ From:=1, To:=2 End Sub 
  • Infine, eseguire il codice premendo F5 sulla tastiera e vedrete il risultato.

  • Successivamente si vedrà che un Libro di lavoro PDF Il file è già stato salvato in quella posizione sul PC. Di conseguenza, il nome del file viene mantenuto automaticamente.

Analogamente, come nell'esempio precedente, anche in questo caso il file pdf verrà salvato come numero di foglio.

Spiegazione del codice VBA

 ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, filename:=loc, OpenAfterPublish:=False, IncludeDocProperties:=True, IgnorePrintAreas:=False, Quality:=xlQualityStandard, From:=1, To:=2 

Il blocco di codice serve per stampare e salvare il file excel come pdf.

Per saperne di più: Stampa su PDF ed e-mail con VBA in Excel (2 casi utili)

6. Funzione VBA per stampare PDF e salvare automaticamente il nome del file

Esploriamo un altro modo di Excel VBA per stampare in PDF e salvare automaticamente il nome del file. In questo esempio utilizzeremo una funzione e salveremo il file in PDF. Utilizzeremo anche la funzione Msgbox per fornire un messaggio che indichi se il file è stato salvato o meno.

FASI:

  • All'inizio, andare alla voce Sviluppatore scheda> Visual Basic > Inserire > Modulo .
  • Oppure, cliccando con il tasto destro del mouse sul foglio di lavoro si aprirà una finestra, da cui si accede alla voce Visualizza il codice .
  • E questo vi porterà alla pagina Editor Visual Basic dove possiamo scrivere Macro VBA .
  • D'altra parte, premendo Alt + F11 aprirà anche la finestra Editor Visual Basic .
  • Dopodiché, digitate il comando VBA codice.

Codice VBA:

 Sub PrntPDF3() Dim wrks As Worksheet Dim wrkb As Workbook Dim snam As String Dim sloc As String Dim sf As String Dim slocf As String Dim myFile As Variant Dim l As Long On Error GoTo errHandler Set wrkb = ActiveWorkbook Set wrks = ActiveSheet sloc = wrkb.Path If sloc = "" Then sloc = Application.DefaultFilePath End If sloc = sloc & "\" snam = wrks.Range("A1").Value & " Print " &wrks.Range("A2").Value & " PDF " & wrks.Range("A3").Value sf = snam & ".pdf" slocf = slocamp &; sf If PrintFile(slocf) Then l = MsgBox(vbQuestion + vbYesNo, "File Exists") If l vbYes Then myFile = Application.GetSaveAsFilename(InitialFileName:=slocf, FileFilter:="PDF Files (*.pdf), *.pdf", _ Title:="Save File Name") If myFile "False" Then slocf = myFile Else GoTo exitHandler End IfEnd If End If wrks.ExportAsFixedFormat Type:=xlTypePDF, filename:=slocf, Quality:=xlQualityStandard, _ IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=False MsgBox "Print PDF: " & vbCrLf & strPathFile exitHandler: Exit Sub errHandler: MsgBox "Not Print" Resume exitHandler End Sub Function PrintFile(rsFullPath As String) As Boolean PrintFile =CBool(Len(Dir$(rsFullPath))> 0) Funzione finale 
  • Eseguire il codice per vedere il risultato premendo il tasto Tasto F5 .

  • Questo apparirà in Msgbox e verificare che il file PDF sia pronto per la stampa.

  • Analogamente, come in precedenza, si noterà che un file PDF della cartella di lavoro è già stato salvato in quella posizione sul computer. Di conseguenza, il nome del file è conservato per impostazione predefinita. Come si imposta il nome del file Stampa PDF , ha salvato il nome del file Stampa PDF.

Se si guarda la spiegazione del codice precedente, si capiranno bene le linee del codice. Non è necessario modificare il codice, basta cambiare gli intervalli secondo le proprie preferenze. È possibile copiare il codice e utilizzarlo per il proprio lavoro.

Per saperne di più: Macro di Excel per salvare in PDF con il nome del file dal valore della cella (2 esempi)

7. Codice VBA di Excel per stampare in PDF e salvare automaticamente il nome del file

Vediamo un altro metodo VBA di Excel per stampare in PDF e memorizzare automaticamente il nome del file.

FASI:

  • Per iniziare, navigare nella cartella Sviluppatore sulla barra multifunzione.
  • In secondo luogo, nella sezione Codice, selezionare Visual Basic per lanciare il Editor Visual Basic Per aprire la finestra Editor Visual Basic , fare clic su Alt + F11 .
  • In alternativa, è sufficiente fare clic con il tasto destro del mouse sul foglio di lavoro e selezionare Codice Si accede così alla pagina Editor Visual Basic anche.
  • Questo verrà visualizzato nella schermata Editor Visual Basic dove scriveremo il codice per generare una tabella da un intervallo.
  • In terzo luogo, dalla barra dei menu a discesa Inserisci, selezionare Modulo .
  • Copiare e incollare il file VBA codice mostrato di seguito.

Codice VBA:

 Sub PrintPDF4() Dim wrksht As Worksheet Dim wrkbk As Workbook Dim snam As String Dim sloc As String Dim sf As String Dim slocf As String Dim file As Variant On Error GoTo errHandler Set wrkbk = ActiveWorkbook Set wrksht = ActiveSheet sloc = wrkbk.Path If sloc = "" Then sloc = Application.DefaultFilePath End If sloc = sloc & "\" snam = wrksht.Range("A1").Value & " - " &wrksht.Range("A2").Value & " - " & wrksht.Range("A3").Value sf = snam & ".pdf" slocf = slocamp &; sf wrksht.ExportAsFixedFormat Type:=xlTypePDF, filename:=slocf, Quality:=xlQualityStandard, _ IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=False MsgBox "Print PDF: " & vbCrLf & strPathFile exitHandler: Exit Sub errHandler: MsgBox "Not Print" ResumeexitHandler Fine Sub 
  • Quindi, eseguire il codice facendo clic sul pulsante RubSub o premendo il tasto F5 scorciatoia da tastiera.

  • In particolare, poi, un Msgbox apparirà.

  • Il file viene salvato come PDF con lo stesso nome automatico dell'esempio precedente.

Spiegazione del codice VBA

 sloc = wrkbk.Path If sloc = "" Then sloc = Application.DefaultFilePath End If sloc = sloc & "\" snam = wrksht.Range("A1").Value & " - " & wrksht.Range("A2").Value & " - " & wrksht.Range("A3").Value 

Servono per ottenere la cartella della cartella di lavoro attiva se la cartella di lavoro viene salvata.

 sf = snam &; ".pdf" slocf = sloc & sf 

Questo crea il nome predefinito per il salvataggio dei file.

 wrksht.ExportAsFixedFormat Type:=xlTypePDF, filename:=slocf, Quality:=xlQualityStandard, _ IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=False 

Questo blocco esporta semplicemente il file excel in PDF nella cartella corrente.

 MsgBox "Stampa PDF: " & vbCrLf & strPathFile exitHandler: Exit Sub errHandler: MsgBox "Non stampa" Resume exitHandler 

Questo ci permetterà di visualizzare un messaggio di conferma con le informazioni sul file in Microsoft Excel.

Per saperne di più: Stampa su PDF utilizzando il pulsante della macro in Excel (5 varianti di macro)

8. Stampare un foglio Excel specifico con nome file automatico

Vediamo un altro metodo VBA di Excel per stampare in PDF e memorizzare automaticamente il nome del file.

FASI:

  • In primo luogo, selezionare la voce Sviluppatore dalla barra multifunzione.
  • In secondo luogo, ai sensi della Codice categoria, selezionare Visual Basic per lanciare il Editor Visual Basic In alternativa, premere Alt + F11 per lanciare il Editor Visual Basic .
  • Invece, fare clic con il tasto destro del mouse sul foglio di lavoro e selezionare Codice .
  • Questo verrà visualizzato nella schermata Editor Visual Basic dove scriveremo il codice per generare una tabella da un intervallo.
  • In terzo luogo, selezionare Modulo dalla barra dei menu a discesa Inserisci.
  • Inoltre, copiare e incollare il file Codice VBA di seguito.

Codice VBA:

 Sub PrintPDF5() Dim loc As String Dim r As Range loc = "E:\PDF File.pdf" Set rng = Sheets("IT").Range("A1:F13") rng.ExportAsFixedFormat Type:=xlTypePDF, _ filename:=loc End Sub 
  • Inoltre, eseguire il codice facendo clic sul pulsante RubSub o utilizzando il tasto F5 scorciatoia da tastiera.

  • Questo file viene salvato come PDF con lo stesso nome dell'esempio precedente.

Spiegazione del codice VBA

 Dim loc As String Dim r As Range loc = "E:\PDF File.pdf" Set rng = Sheets("IT").Range("A1:F13") 

Questi blocchi di codice servono per creare e assegnare le variabili.

 rng.ExportAsFixedFormat Tipo:=xlTypePDF, _nomefile:=loc 

Questa operazione consente di salvare una serie di dati di file in formato PDF.

Per saperne di più: Come convertire Excel in PDF senza perdere la formattazione (5 modi efficaci)

9. Salvare il nome del file in modo automatico durante la stampa in PDF in Excel VBA

Vediamo un altro metodo VBA di Excel per stampare in PDF e memorizzare automaticamente il nome del file.

FASI:

  • Per iniziare, selezionare la voce Sviluppatore dalla barra multifunzione.
  • In secondo luogo, scegliere Visual Basic dal Codice per aprire l'area Editor Visual Basic . Clicca Alt + F11 per lanciare il Editor Visual Basic .
  • È anche possibile fare clic con il tasto destro del mouse sul foglio di lavoro e selezionare Visualizza il codice Questo vi porterà anche alla pagina Editor Visual Basic .
  • Ora, possiamo vedere il Editor Visual Basic dove scriveremo il codice per creare una tabella da un intervallo.
  • Inoltre, selezionare Modulo dal Inserire barra dei menu a discesa.
  • Quindi, copiare e incollare il file VBA codice che segue.

Codice VBA:

 Sub Prnt_PDF() Call Automatic_Name End Sub Function Automatic_Name() As Boolean ' Copia i fogli in un nuovo file PDF da inviare via e-mail Dim sht As String, file As String, loc As String Dim s As String Application.ScreenUpdating = False sht = ActiveSheet.Name file = ActiveWorkbook.Name loc = ActiveWorkbook.Path s = loc & "\" & sht & ".pdf" On Error Resume NextActiveSheet.PageSetup.PrintQuality = 600 err.Clear On Error GoTo 0 On Error GoTo RefLibError ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, filename:=s, Quality:=xlQualityStandard, IncludeDocProperties:=False, IgnorePrintAreas:=False, OpenAfterPublish:=True On Error GoTo 0 SaveOnly: MsgBox "Salvato come file .pdf: " & vbCrLf & vbCrLf & SvAs & _ "Rivedere il documento .pdf".Automatic_Name = True GoTo EndMacro RefLibError: MsgBox "Impossibile salvare come PDF" Automatioc_Name = False EndMacro: Fine Funzione 
  • Il codice verrà quindi eseguito facendo clic sul pulsante RubSub o utilizzando il tasto F5 scorciatoia da tastiera.

Spiegazione del codice VBA

 sht = ActiveSheet.Name file = ActiveWorkbook.Name loc = ActiveWorkbook.Path s = loc & "\" & sht & ".pdf" 

Per ottenere il file come pdf e salvare il nome del pdf.

 On Error Resume Next ActiveSheet.PageSetup.PrintQuality = 600 err.Clear On Error GoTo 0 

Imposta la qualità di stampa.

 On Error GoTo RefLibError ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, filename:=s, Quality:=xlQualityStandard, IncludeDocProperties:=False, IgnorePrintAreas:=False, OpenAfterPublish:=True On Error GoTo 0 SaveOnly: MsgBox "Salvato come file .pdf: " & vbCrLf & vbCrLf & SvAs & _ "Esaminare il documento .pdf" Automatic_Name = True GoTo EndMacro RefLibError: MsgBox "Impossibile salvare come file .pdf".PDF" Nome Automatico = Falso 

Queste righe indicano all'utente come inviare il file per stamparlo in formato pdf.

Per saperne di più: Come salvare Excel in PDF senza tagli (4 modi adatti)

Conclusione

I metodi sopra descritti vi aiuteranno a svolgere il lavoro da Stampa in PDF e salvataggio automatico del nome del file in Excel VBA Se avete domande, suggerimenti o commenti, fatecelo sapere nella sezione dei commenti. Oppure potete dare un'occhiata agli altri articoli della sezione "Articoli". ExcelWIKI.com blog!

Hugh West è un istruttore e analista di Excel di grande esperienza con oltre 10 anni di esperienza nel settore. Ha conseguito una laurea in Contabilità e Finanza e un Master in Economia Aziendale. Hugh ha una passione per l'insegnamento e ha sviluppato un approccio didattico unico che è facile da seguire e capire. La sua conoscenza approfondita di Excel ha aiutato migliaia di studenti e professionisti in tutto il mondo a migliorare le proprie competenze ed eccellere nella propria carriera. Attraverso il suo blog, Hugh condivide le sue conoscenze con il mondo, offrendo esercitazioni gratuite su Excel e formazione online per aiutare le persone e le aziende a raggiungere il loro pieno potenziale.