Visual Basic for Applications o VBA è un linguaggio di programmazione potente ma semplice e ti consente di automatizzare al massimo Microsoft Excel. Una di queste automazioni utilizza i codici VBA per integrare altre app Microsoft come Outlook, PowerPoint e Word e aumentare la produttività.
  
L'invio di e-mail con VBA in Excel è una di queste integrazioni che semplifica la vita automatizzando fogli di calcolo o attività di invio di report. Questo tutorial ti guiderà attraverso i passaggi dell'invio di e-mail con VBA da Excel in passaggi facili da seguire.

Attivazione della libreria di oggetti di Microsoft Outlook
  
È necessario impostare il riferimento all'oggetto di posta elettronica di Outlook poiché è un oggetto esterno per Excel VBA . Segui questi passaggi:
	- Salva il file Excel esistente come file con attivazione macro facendo clic su File > Salva con nome > seleziona una posizione e modifica Salva come tipo .
- Premi Alt + F11 per visualizzare l'editor di codice VBA e fai clic su Strumenti situato nella barra dei menu in alto.

	- Da lì, seleziona Riferimenti e quindi scorri l' elenco Riferimenti disponibili per trovare Microsoft Outlook 16.0 Object Library .
- Selezionare l'oggetto e fare clic su OK per uscire dall'elenco Riferimenti disponibili .
Invio di e-mail con VBA: scrivi codici ed esegui
Ora che hai abilitato l'oggetto Outlook in Excel VBA, segui questi passaggi per scrivere la macro di Excel ed eseguirla:
	- Assicurati di essere sull'interfaccia dell'editor di codice VBA. Ora, cerca la scheda Inserisci nel menu in alto di Excel VBA.
- Fai clic su Inserisci e quindi seleziona Modulo per inserire un modulo in cui potrai scrivere codici VBA.
- Ora, copia e incolla il seguente script VBA nel modulo appena creato.
Sub send_email_with_VBA() Dim EmailApp As Outlook.Application Dim Source As String Set EmailApp = New Outlook.Application Dim EmailItem As Outlook.MailItem Set EmailItem = EmailApp.CreateItem(olMailItem) EmailItem.To = "[email protected]" EmailItem.CC = "[email protected]" EmailItem.BCC = "[email protected]" EmailItem.Subject = "Stato spedizione ordine cliente" EmailItem.HTMLBody = "Ciao Team," & vbNewLine & vbNewLine & "PFA il foglio di calcolo per l'ordine di oggi status" & _ vbNewLine & vbNewLine & _ "Saluti", & vbNewLine & _ "Tamal Das" Source = ThisWorkbook.FullName EmailItem.Attachments.Add Source EmailItem.Send End Sub
Il suddetto codice invierà un'e-mail utilizzando il tuo account Outlook agli indirizzi e-mail menzionati nel codice.
Il contenuto dell'e-mail è disponibile anche nella riga di codice EmailItem.HTMLBody . Inoltre, Excel VBA allegherà automaticamente la cartella di lavoro di origine all'e-mail come allegato.
È possibile apportare le seguenti modifiche per personalizzare gli indirizzi e il testo del corpo dell'e-mail:
	- Sostituisci tutti gli indirizzi e-mail all'interno del preventivo con i tuoi contatti di Outlook .
- Personalizza il testo EmailItem.Subject all'interno del preventivo come meglio credi.
- Nel codice EmailItem.HTMLBody , puoi sostituire tutti i testi all'interno delle virgolette utilizzando il tuo contenuto.
- Ora esegui lo script VBA premendo F5 .

Per inviare correttamente la posta elettronica con VBA, è necessario configurare l'account Gmail o l'account Outlook nell'app Outlook autonoma della suite Microsoft Office. Outlook online basato su browser non funzionerà con questo codice VBA.
Conclusione
Ora che hai seguito i passaggi di cui sopra per l'invio di e-mail con VBA, dovrebbe essere più facile per te automatizzare le attività banali in Excel. Ad esempio, lascia che il file del foglio di lavoro ti invii automaticamente un'e-mail quando i collaboratori aggiornano il foglio di lavoro. Inoltre, invia e-mail automatiche ai clienti quando aggiorni la colonna dello stato dell'ordine in Excel.
Se desideri una maggiore automazione di Excel utilizzando VBA, utilizza la codifica del timestamp VBA per tenere un registro delle modifiche al foglio di calcolo.