Come si fa a salvare un foglio di lavoro come file PDF e inviarlo come allegato tramite Outlook?
Nel lavoro quotidiano, capita spesso di dover condividere un foglio specifico con colleghi o clienti, assicurandosi al contempo che il file sia protetto e non modificabile. Inviare un foglio come PDF tramite Outlook è un’esigenza comune, soprattutto per documentare report, inviare fatture o condividere dati definitivi che non devono essere facilmente alterati. Tradizionalmente, però, questo richiede di salvare manualmente il foglio in formato PDF, aprire Outlook, comporre un nuovo messaggio, allegare il file e inviarlo — un processo noioso e dispendioso in termini di tempo, specialmente se ripetuto frequentemente o quando si gestiscono più fogli contemporaneamente.
Questo articolo ti accompagna passo dopo passo nell’automatizzare la conversione di un foglio di lavoro in PDF e nel suo immediato invio come allegato a un messaggio di Outlook direttamente da Excel, permettendoti di risparmiare tempo prezioso ed eliminare attività manuali ripetitive. Scoprirai una soluzione basata su codice VBA, completa di indicazioni sull’utilizzo, vantaggi, scenari di applicazione e suggerimenti pratici.
Salva un foglio di lavoro come File PDF e invialo come allegato con codice VBA
Salva un foglio di lavoro come File PDF e invialo come allegato con codice VBA
Per velocizzare l’esportazione di un foglio Excel in PDF e il successivo invio tramite Outlook, puoi utilizzare il seguente codice VBA. Questo approccio è ideale se devi inviare regolarmente report personalizzati, fatture o altre istantanee dei tuoi dati direttamente da Excel, poiché automatizza completamente le fasi di salvataggio e invio.
Prima di applicare questo metodo, assicurati che Microsoft Outlook sia installato e configurato come client di posta predefinito. Il codice funziona al meglio con le macro 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. Verrà creato un nuovo modulo di codice. Copia quindi 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 oppure fai clic su Esegui nell’editor VBA per eseguire la macro. Apparirà una finestra di dialogo per la selezione della cartella: scegli quella di destinazione in cui salvare il file PDF, quindi fai clic su OK per continuare.

Note e suggerimenti pratici:

4. Al termine del processo, si aprirà automaticamente una nuova finestra di posta di Outlook con il file PDF allegato. L’oggetto del messaggio sarà già compilato con il nome del foglio di lavoro seguito da «.pdf»; potrai personalizzare il testo dell’email, aggiungere i destinatari e inviare il messaggio in base alle tue esigenze. Questo approccio riduce gli errori e migliora l’efficienza rispetto all’allegazione manuale.

Questo approccio basato su VBA si rivela particolarmente efficiente quando devi distribuire regolarmente fogli finalizzati come allegati PDF, riducendo al minimo le operazioni manuali ripetitive. I suoi limiti includono la dipendenza da Outlook, l’impossibilità di elaborare più fogli contemporaneamente e la necessità di abilitare le macro. Per flussi di lavoro più complessi — come l’invio simultaneo di più fogli o un’ulteriore automazione — valuta l’uso di componenti aggiuntivi per Excel o delle funzionalità integrate.
Soluzione alternativa: se le macro VBA non sono adatte al tuo ambiente — ad esempio perché sono bloccate — puoi usare manualmente la funzione integrata di Excel Esporta o Salva con nome per salvare il foglio come PDF, quindi allegarlo e inviarlo tramite Outlook. Questo metodo, pur richiedendo più passaggi, è universalmente disponibile senza permessi speciali né conoscenze di scripting.
Salva facilmente un foglio di lavoro o più fogli di lavoro come singoli File PDF contemporaneamente:
L’utility Dividi documento di Kutools per Excel ti permette di salvare facilmente uno o più fogli di lavoro come singoli file PDF, tutto in un colpo solo, come mostrato nella demo seguente. Scaricala e provala subito! (Prova gratuita di 30 giorni))

Articoli correlati:
- Come salvare un file Excel con un timestamp?
- Come si usa la funzione «Salva con nome» in Excel per sovrascrivere automaticamente un file esistente?
- Come salvare o esportare più fogli o tutti i fogli come file CSV o file di testo separati in Excel?
- Come disabilitare o impedire l’uso delle opzioni “Salva” e “Salva con nome” in Excel?
- Come disabilitare il salvataggio della cartella di lavoro in Excel, consentendo esclusivamente l’opzione “Salva con nome”?
Migliori Strumenti per la Produttività in Office
Potenzia le tue competenze in Excel con Kutools per Excel e sperimenta un’efficienza mai vista prima.Kutools per Excel offre oltre 300 funzionalità avanzate per aumentare la produttività e Risparmia tempo.Clicca qui per ottenere la funzionalità di cui hai più bisogno...
Office Tab Porta l'interfaccia a schede in Office e rende il tuo lavoro molto più semplice
- Abilita la modifica e la lettura a schede in Word, Excel, PowerPoint, Publisher, Access, Visio e Project.
- Apri e crea più documenti in nuove schede all’interno della stessa finestra, invece che in finestre separate.
- Aumenta la tua produttività del 50 % e risparmia centinaia di clic del mouse ogni giorno!
Tutti i componenti aggiuntivi di Kutools in un unico programma di installazione.
Kutools for Office è la suite che include componenti aggiuntivi per Excel, Word, Outlook e PowerPoint, oltre a Office Tab Pro: la soluzione ideale per i team che lavorano su diverse app di Office.
- Suite completa— componenti aggiuntivi per Excel, Word, Outlook e PowerPoint + Office Tab Pro
- Un unico programma di installazione, una sola licenza— configurazione in pochi minuti (pronto per MSI)
- Funziona meglio insieme— produttività ottimizzata tra le app di Office
- Prova gratuita di 30 giorni con tutte le funzionalità— nessuna registrazione, nessuna carta di credito
- Miglior rapporto qualità-prezzo— risparmia rispetto all’acquisto dei singoli componenti aggiuntivi