Come salvare un foglio di lavoro come file PDF e inviarlo come allegato tramite Outlook?
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.
Note e suggerimenti pratici:
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.
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)
Articoli correlati:
- Come salvare un nome file di Excel con timestamp?
- Come usare la funzione Salva con nome per sovrascrivere automaticamente un file esistente in Excel?
- Come salvare, esportare più/tutti i fogli in file CSV o di testo separati in Excel?
- Come disabilitare o non consentire le opzioni Salva & Salva con nome in Excel?
- Come disabilitare il salvataggio della cartella di lavoro ma consentire solo Salva con nome in Excel?
I migliori strumenti per la produttività in Office
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!