Come inviare via email un intervallo di celle da Excel tramite Outlook?
Nel lavoro quotidiano con Excel, capita spesso di completare un report e dover condividere solo una parte dei dati con un destinatario specifico. Ad esempio, potresti voler inviare informazioni rilevanti da un intervallo di celle selezionato anziché dall’intera cartella di lavoro, garantendo così privacy e pertinenza. La maggior parte degli utenti, naturalmente, preferisce soluzioni che non richiedano di passare manualmente a Outlook o di ricorrere al copia-incolla. Esistono metodi pratici ed efficienti per inviare via email un intervallo di celle direttamente da Excel?
Questa guida presenta diversi metodi per inviare via email celle selezionate tramite Outlook — sia con soluzioni VBA che con funzionalità integrate di Excel — per ottimizzare il flusso di lavoro e ridurre al minimo lo sforzo manuale. Scoprirai come inviare l’intervallo come allegato, incorporare le celle direttamente nel corpo del messaggio, salvare intervalli di celle come immagini o PDF prima dell’invio e sfruttare le funzionalità legacy di posta elettronica di Excel. La guida include inoltre i passaggi essenziali per la configurazione, un’analisi degli scenari d’uso, suggerimenti per la risoluzione dei problemi e consigli pratici per ottenere risultati impeccabili.
Invia un intervallo di celle come allegato da Excel con codice VBA
Invia un intervallo di celle nel corpo del messaggio da Excel con codice VBA
Invia un intervallo di celle come allegato da Excel con codice VBA
Se desideri condividere un set specifico di dati senza concedere accesso all’intera cartella di lavoro, puoi estrarre un intervallo di celle selezionato e inviarlo come allegato — ad esempio in formato .xlsx o .xls — direttamente tramite Outlook. Questa soluzione è ideale quando il destinatario deve visionare solo una porzione del report o quando la riservatezza dei dati è essenziale. Di seguito trovi i passaggi per configurare ed eseguire il codice VBA che automatizza questa operazione:
1. Apri la tua cartella di lavoro Excel di destinazione. Premi ALT + F11 per avviare la finestra Microsoft Visual Basic, Applications, dove puoi inserire e modificare il codice VBA.
2. Fai clic su Inserisci > Modulo, per creare un nuovo modulo per il tuo codice. Incolla lo script seguente nella finestra del modulo.
Codice VBA: invia un intervallo di celle come allegato da Excel
Sub SendRange()
'Update 20131209
Dim xFile As String
Dim xFormat As Long
Dim Wb As Workbook
Dim Wb2 As Workbook
Dim Ws As Worksheet
Dim FilePath As String
Dim FileName As String
Dim OutlookApp As Object
Dim OutlookMail As Object
Dim WorkRng As Range
xTitleId = "KutoolsforExcel"
Set WorkRng = Application.Selection
Set WorkRng = Application.InputBox("Range", xTitleId, WorkRng.Address, Type:=8)
Application.ScreenUpdating = False
Application.DisplayAlerts = False
Set Wb = Application.ActiveWorkbook
Wb.Worksheets.Add
Set Ws = Application.ActiveSheet
WorkRng.Copy Ws.Cells(1, 1)
Ws.Copy
Set Wb2 = Application.ActiveWorkbook
Select Case Wb.FileFormat
Case xlOpenXMLWorkbook:
xFile = ".xlsx"
xFormat = xlOpenXMLWorkbook
Case xlOpenXMLWorkbookMacroEnabled:
If Wb2.HasVBProject Then
xFile = ".xlsm"
xFormat = xlOpenXMLWorkbookMacroEnabled
Else
xFile = ".xlsx"
xFormat = xlOpenXMLWorkbook
End If
Case Excel8:
xFile = ".xls"
xFormat = Excel8
Case xlExcel12:
xFile = ".xlsb"
xFormat = xlExcel12
End Select
FilePath = Environ$("temp") & "\"
FileName = Wb.Name & Format(Now, "dd-mmm-yy h-mm-ss")
Set OutlookApp = CreateObject("Outlook.Application")
Set OutlookMail = OutlookApp.CreateItem(0)
Wb2.SaveAs FilePath & FileName & xFile, FileFormat:=xFormat
With OutlookMail
.To = "skyyang@extendoffice.com"
.CC = ""
.BCC = ""
.Subject = "information of kte"
.Body = "hello, please check and read this document. "
.Attachments.Add Wb2.FullName
.Send
End With
Wb2.Close
Kill FilePath & FileName & xFile
Set OutlookMail = Nothing
Set OutlookApp = Nothing
Ws.Delete
Application.DisplayAlerts = True
Application.ScreenUpdating = True
End Sub Suggerimenti e personalizzazioni:
- .To
- .CCe .BCCpossono essere impostati per la copia conoscenza o la copia conoscenza nascosta, a seconda delle necessità.
- .Subjecte .Bodyconsentono di personalizzare il messaggio email.
3. Premi F5 per eseguire il codice. Si aprirà una finestra di selezione: specifica l’intervallo che desideri inviare via email (ti consigliamo di verificare i dati prima dell’invio). Vedi lo screenshot di esempio:

4. Dopo aver fatto clic su OK, potresti visualizzare una notifica di avanzamento o una richiesta di autorizzazione. Al termine, fai clic su Consenti. L’intervallo di celle selezionato verrà inviato al destinatario scelto come allegato Excel.

Precauzioni e risoluzione dei problemi:
- Se Outlook non è impostato come programma di posta predefinito o non è in esecuzione, il codice potrebbe non funzionare correttamente.
- Assicurati che le impostazioni di sicurezza delle macro consentano l’esecuzione degli script VBA: potrebbe essere necessario abilitare le macro o regolare le impostazioni del Centro protezione.
- Il tipo di allegato dipende dall’origine del tipo di file e dalla riga specificata nel codice VBA.
- Dopo l’invio, controlla la cartella **Elementi inviati** di Outlook per confermare che il messaggio sia stato consegnato correttamente.
Questo approccio è perfetto per condividere i dati in modo sicuro, archiviare i record e gestire situazioni in cui è essenziale mantenere la formattazione originale di Excel. Tuttavia, i destinatari dovranno avere il software appropriato per aprire i file in allegato.
Invia un intervallo di celle nel corpo del messaggio da Excel con codice VBA
Quando si desidera che i destinatari consultino immediatamente le informazioni senza dover scaricare allegati — come nel caso di riepiloghi periodici o aggiornamenti sui progressi — è possibile incorporare direttamente l’intervallo di celle selezionato nel corpo dell’email. Questo approccio non solo migliora l’accessibilità, ma rende anche le informazioni più immediate da leggere e più rapide da elaborare.
1. Passa al foglio di lavoro contenente i tuoi dati. Premi ALT + F11 per accedere alla finestra Microsoft Visual Basic, Applications.
2. Fai clic su Inserisci > Modulo per aprire una finestra di modulo, quindi incolla il codice seguente:
Codice VBA: invia un intervallo di celle nel corpo del messaggio da Excel
Sub EmailRange()
'Update by Extendoffice
Dim WorkRng As Range
On Error Resume Next
xTitleId = "KutoolsforExcel"
Set WorkRng = Application.Selection
Set WorkRng = Application.InputBox("Range", xTitleId, WorkRng.Address, Type:=8)
Application.ScreenUpdating = False
WorkRng.Select
ActiveWorkbook.EnvelopeVisible = True
With ActiveSheet.MailEnvelope
.Introduction = "Please read this email."
.Item.To = "skyyang@extendoffice.com"
.Item.Subject = "information of kte"
.Item.Send
End With
Application.ScreenUpdating = True
End Sub Note sui parametri e adattamenti pratici:
- .Introductionti consente di includere un messaggio prima dell’intervallo stesso.
- .Item.Todeve essere aggiornato con il tuo Indirizzo Email desiderato.
- .Item.Subjectpuò essere modificato per adattarsi al focus del tuo report o della tua email.
3. Esegui la macro premendo F5. Quando richiesto, seleziona l’intervallo di celle che desideri inviare.

4. Conferma la selezione e fai clic su OK. Tieni d’occhio eventuali avvisi di sicurezza. Una volta completato, fai clic su Consenti per autorizzare la macro. Il Seleziona intervallo apparirà direttamente nel corpo dell’email di Outlook, formattato come tabella.

Promemoria importanti:
- Questa soluzione richiede che Outlook sia installato e configurato come client di posta predefinito.
- Abilita le macro in Excel per garantire l'esecuzione corretta del codice VBA. In caso di errori, controlla le impostazioni delle macro nel Centro protezione.
- La formattazione viene mantenuta; tuttavia, i formati celle complessi potrebbero apparire diversamente nell’e-mail rispetto a Excel.
- Visita la cartella Posta in uscita o Posta inviata di Outlook per verificare che il messaggio sia stato correttamente inviato.
Questo approccio è ideale per aggiornamenti sullo stato del team, condivisione rapida di dati o distribuzione di cifre chiave a colleghi e clienti che privilegiano una leggibilità immediata.
Altri metodi integrati di Excel – Utilizza la funzionalità integrata «Invia al destinatario di posta» per inviare le celle selezionate nel corpo del messaggio
Alcune versioni precedenti di Excel (anteriore a Office 365) includevano un pratico pulsante integrato «Invia al destinatario di posta», che consentiva di inviare rapidamente le celle selezionate direttamente nel corpo dell’email — senza dover ricorrere a VBA. Sebbene questa funzionalità sia nascosta per impostazione predefinita nelle versioni moderne di Excel, è ancora disponibile tramite la personalizzazione della Barra di accesso rapido. Una soluzione perfetta per chi utilizza installazioni legacy di Excel o preferisce evitare l’uso di macro.
Come abilitare e utilizzare:
- Fai clic con il pulsante destro del mouse sulla Barra di accesso rapido (sopra la tua Barra multifunzione) e seleziona Personalizza barra di accesso rapido.
- Nell’elenco dei comandi, modifica «Scegli comandi da:» in Tutti i comandi.
- Scorri verso il basso e aggiungi Invia al destinatario di posta alla Barra di accesso rapido.
- Dopo aver completato la configurazione, seleziona le celle che desideri inviare. Fai clic sull’icona Invia al destinatario di posta: Excel aprirà una finestra email incorporata con la selezione nel corpo del messaggio. Aggiungi destinatari, oggetto e invia direttamente.
Note importanti:
- Questo metodo richiede che Outlook sia impostato come client di posta predefinito.
- L’utilizzo della finestra email incorporata potrebbe differire dalla normale composizione in Outlook: controlla attentamente la formattazione.
- Questa funzionalità potrebbe essere disabilitata o non disponibile in alcune versioni di Excel, in particolare nelle build più recenti di Office 365. In tali casi, prendi in considerazione soluzioni alternative basate su VBA o sull’esportazione in PDF o immagine.
Vantaggi e svantaggi:
- Molto rapido e semplice nelle versioni supportate: non richiede codice né configurazioni avanzate.
- Non disponibile in tutte le versioni; gli utenti di Excel più recenti potrebbero dover ricorrere a metodi alternativi.
Articoli correlati:
Come inviare un singolo foglio di lavoro tramite Outlook direttamente da Excel?
Come inviare il foglio di lavoro corrente tramite Outlook da Excel?
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