Skip to main content

Come salvare un foglio di lavoro come file PDF e inviarlo come allegato tramite Outlook?

Author: Siluvia Last Modified: 2025-08-06

Nel lavoro quotidiano, potresti spesso incontrare situazioni in cui è necessario condividere un determinato foglio di lavoro con colleghi o clienti, ma vuoi assicurarti che il formato del file sia fisso e sicuro. Inviare un foglio di lavoro come file PDF tramite Outlook è una richiesta comune, specialmente per documentare report, inviare fatture o condividere dati finalizzati che non devono essere facilmente modificabili. Tradizionalmente, ciò comporta il salvataggio manuale del foglio di lavoro come PDF, l'apertura di Outlook, la composizione di un'email, l'allegare il PDF e l'invio – il che è noioso e dispendioso in termini di tempo, soprattutto se ripetuto frequentemente o quando si gestiscono più fogli.

Questo articolo ti guida passo dopo passo su come automatizzare il processo di conversione di un foglio di lavoro in PDF e allegarlo immediatamente a un'email di Outlook direttamente da Excel, aiutandoti a risparmiare tempo significativo ed evitare lavoro manuale ripetitivo. Troverai una soluzione basata su codice VBA, insieme a dettagli sull'operazione, vantaggi, scenari di applicazione e suggerimenti pratici.

Salva un foglio di lavoro come file PDF e invialo come allegato con il codice VBA


Salva un foglio di lavoro come file PDF e invialo come allegato con il codice VBA

Per velocizzare il processo di esportazione di un foglio di lavoro di Excel come file PDF e inviarlo tramite Outlook, puoi utilizzare il seguente codice VBA. Questo approccio è particolarmente utile se hai bisogno regolarmente di inviare report personalizzati, fatture o altre istantanee di dati direttamente da Excel, poiché automatizza completamente i passaggi di salvataggio e invio delle email.

Prima di applicare questo metodo, assicurati che Microsoft Outlook sia installato e impostato come client di posta predefinito. Il codice funziona meglio quando le macro sono abilitate nel tuo ambiente Excel.

1. Apri il foglio di lavoro che desideri salvare e inviare come PDF. Premi contemporaneamente Alt + F11 per avviare l'editor Microsoft Visual Basic for Applications (VBA).

2. Nella finestra VBA, vai al menu e fai clic su Inserisci > Modulo. Questo creerà un nuovo modulo di codice. Poi copia e incolla il seguente codice VBA nella finestra Codice del modulo.  

Codice VBA: Salva un foglio di lavoro come file PDF e invialo come allegato

Sub Saveaspdfandsend()
Dim xSht As Worksheet
Dim xFileDlg As FileDialog
Dim xFolder As String
Dim xYesorNo As Integer
Dim xOutlookObj As Object
Dim xEmailObj As Object
Dim xUsedRng As Range

Set xSht = ActiveSheet
Set xFileDlg = Application.FileDialog(msoFileDialogFolderPicker)

If xFileDlg.Show = True Then
   xFolder = xFileDlg.SelectedItems(1)
Else
   MsgBox "You must specify a folder to save the PDF into." & vbCrLf & vbCrLf & "Press OK to exit this macro.", vbCritical, "Must Specify Destination Folder"
   Exit Sub
End If
xFolder = xFolder + "\" + xSht.Name + ".pdf"

'Check if file already exist
If Len(Dir(xFolder)) > 0 Then
    xYesorNo = MsgBox(xFolder & " already exists." & vbCrLf & vbCrLf & "Do you want to overwrite it?", _
                      vbYesNo + vbQuestion, "File Exists")
    On Error Resume Next
    If xYesorNo = vbYes Then
        Kill xFolder
    Else
        MsgBox "if you don't overwrite the existing PDF, I can't continue." _
                    & vbCrLf & vbCrLf & "Press OK to exit this macro.", vbCritical, "Exiting Macro"
        Exit Sub
    End If
    If Err.Number <> 0 Then
        MsgBox "Unable to delete existing file.  Please make sure the file is not open or write protected." _
                    & vbCrLf & vbCrLf & "Press OK to exit this macro.", vbCritical, "Unable to Delete File"
        Exit Sub
    End If
End If

Set xUsedRng = xSht.UsedRange
If Application.WorksheetFunction.CountA(xUsedRng.Cells) <> 0 Then
    'Save as PDF file 
    xSht.ExportAsFixedFormat Type:=xlTypePDF, Filename:=xFolder, Quality:=xlQualityStandard
    
    'Create Outlook email 
    Set xOutlookObj = CreateObject("Outlook.Application")
    Set xEmailObj = xOutlookObj.CreateItem(0)
    With xEmailObj
        .Display
        .To = ""
        .CC = ""
        .Subject = xSht.Name + ".pdf"
        .Attachments.Add xFolder
        If DisplayEmail = False Then
            '.Send
        End If
    End With
Else
  MsgBox "The active worksheet cannot be blank"
  Exit Sub
End If
End Sub

3. Dopo aver incollato il codice, premi F5 o fai clic su Esegui nell'editor VBA per eseguire la macro. Apparirà una finestra di dialogo di selezione della cartella. Scegli la cartella di destinazione in cui deve essere salvato il file PDF, quindi fai clic su OK per continuare.

run vba code to select a folder to save this PDF file

Note e suggerimenti pratici:

1. La macro crea un file PDF con lo stesso nome del foglio di lavoro, memorizzato nella cartella selezionata.
2. Se provi a eseguire il codice quando il foglio di lavoro attivo è vuoto, vedrai una finestra di avviso come nello screenshot qui sotto. Ciò previene il salvataggio e l'invio accidentale di un PDF vuoto. Per evitarlo, assicurati che ci sia contenuto nel foglio di lavoro prima di eseguire la macro.

If the active worksheet is blank,a warning prompt box is popped out

4. Una volta completato il processo, viene generata una nuova finestra di email di Outlook, con il file PDF allegato. La riga dell'oggetto è precompilata con il nome del foglio di lavoro che termina con ".pdf"; puoi modificare il contenuto dell'email, aggiungere destinatari e poi inviarla secondo necessità. Ciò riduce gli errori e aumenta l'efficienza rispetto all'allegato manuale.

a new Outlook email is created with the PDF file as an attachment

Nota: La macro funziona solo se Microsoft Outlook è installato e impostato come client di posta predefinito. Se utilizzi qualsiasi altro programma di posta, questa soluzione potrebbe non essere applicabile.

Questo approccio basato su VBA è più efficiente quando hai bisogno regolarmente di distribuire fogli di lavoro finalizzati come allegati PDF e minimizza i passaggi manuali ripetitivi. Le sue limitazioni includono la dipendenza da Outlook, l'incapacità di elaborare più fogli contemporaneamente e la necessità di abilitare le macro. Per flussi di lavoro più complessi, come l'invio di più fogli di lavoro in una volta sola o ulteriori automazioni, considera l'uso di componenti aggiuntivi di Excel o funzionalità integrate.

Soluzione alternativa: Se le macro VBA non sono adatte al tuo ambiente, come quando le macro sono limitate, puoi utilizzare manualmente la funzione Esporta o Salva con nome di Excel per salvare il tuo foglio di lavoro come PDF, quindi allegarlo e inviarlo in Outlook. Questo metodo, sebbene richieda più passaggi, è universalmente disponibile senza permessi speciali o conoscenze di scripting.


Salva facilmente un foglio di lavoro o più fogli di lavoro come file PDF separati in una volta sola:

La funzione Dividi documento di Kutools per Excel può aiutarti a salvare facilmente un foglio di lavoro o più fogli di lavoro come file PDF separati in una volta sola, come mostrato nella demo qui sotto. Scarica e prova subito! (30-giorni di prova gratuita)

save multiple worksheets as separate PDF files by kutools


Articoli correlati:

I migliori strumenti per la produttività in Office

🤖 Kutools AI Aide: Rivoluziona l’analisi dei dati grazie a: Esecuzione intelligente | Genera codice | Crea formule personalizzate | Analizza dati e genera grafici | Richiama Funzioni avanzate
Funzionalità popolari: Trova, evidenzia o identifica duplicati | Elimina righe vuote | Combina colonne o celle senza perdere dati | Arrotonda
Super RICERCA.VERT: Ricerca con criteri multipli    Ricerca valori multipli  |   Ricerca su più fogli   |   Corrispondenza approssimativa ....
Elenco a discesa avanzato: Crea rapidamente un elenco a discesa | Elenco a discesa dipendente | Elenco a discesa a selezione multipla….
Gestione colonne: Aggiungi un numero specifico di colonne | Sposta colonne | Cambia lo stato di visibilità delle colonne nascoste | Confronta intervalli e colonne...
Funzionalità in evidenza: Attenzione della griglia | Visualizzazione di progettazione | Barra delle formule avanzata | Gestione Cartella di lavoro & Foglio di lavoro | Libreria AutoText | Selettore di data | Unisci dati | Crittografa/Decrittografa celle | Invia Email da elenco | Super Filtri | Filtro speciale (filtra grassetto/corsivo/barrato...)...
I15 migliori kit di strumenti:12 strumenti di testo (Aggiungi testo, Elimina Caratteri Specifici, ...) | Oltre50 tipi di grafici (Diagramma di Gantt, ...) | Oltre40 formule utili (Calcola l'età in base alla data di nascita, ...) |19 strumenti di inserimento (Inserisci codice QR, Inserisci immagine dal percorso, ...) |12 strumenti di conversione (Converti in parole, Conversione valuta, ...) |7 strumenti per unire & dividere (Unione avanzata righe, Dividi celle, ...) | ...e altro ancora
Usa Kutools nella lingua che preferisci – supporta Inglese, Spagnolo, Tedesco, Francese, Cinese e oltre40 altre!

Migliora le tue competenze su Excel con Kutools per Excel e sperimenta un nuovo livello di efficienza. Kutools per Excel offre oltre300 funzionalità avanzate per aumentare la produttività e risparmiare tempo. Clicca qui per ottenere la funzione di cui hai più bisogno...


Office Tab porta l’interfaccia a schede su Office, rendendo il tuo lavoro molto più semplice

  • Abilita la modifica a schede e la lettura in Word, Excel, PowerPoint, Publisher, Access, Visio e Project.
  • Apri e crea più documenti in nuove schede della stessa finestra, invece che in nuove finestre.
  • Aumenta la tua produttività del50% e ti fa risparmiare centinaia di clic ogni giorno!