VBA Invia e-mail da Excel

Codice VBA per inviare e-mail da Excel

In VBA per inviare e-mail da Excel possiamo automatizzare la nostra funzione di posta in modo da poter inviare automaticamente e-mail a più utenti contemporaneamente, per farlo dobbiamo ricordare che è fatto da Outlook un altro prodotto di Outlook, quindi dobbiamo abilitare Outlook scripting in VBA per farlo e una volta terminato utilizziamo il metodo .Application per utilizzare le funzionalità di Outlook.

La versatilità di VBA è semplicemente sorprendente. Il motivo per cui i programmatori VBA amano eccellere perché utilizzando VBA non solo possiamo lavorare all'interno di Excel, ma possiamo anche accedere ad altri strumenti Microsoft. Possiamo accedere a PowerPoint, Word e Outlook utilizzando VBA. La cosa che mi ha colpito è stata quando ho sentito parlare di "invio di e-mail dallo stesso Excel". Sì, è vero che possiamo inviare e-mail da Excel. In questo articolo, ti mostreremo come inviare e-mail da Excel con allegati utilizzando la codifica VBA.

Imposta riferimento alla libreria di Microsoft Office

Dobbiamo inviare e-mail da Outlook. Poiché Outlook è un oggetto esterno, la prima cosa che dobbiamo fare è impostare il riferimento all'oggetto su " Libreria oggetti di Microsoft Outlook 16.0 ".

  • In VBA vai su Strumenti> Riferimenti

  • Ora vedremo la libreria di riferimento agli oggetti. In questa finestra, dobbiamo impostare il riferimento a "Microsoft Outlook 16.0 Object Library"

  • Dopo aver impostato il riferimento dell'oggetto fare clic su Ok.

Ora possiamo accedere all'oggetto Outlook nella codifica VBA.

13 semplici passaggi per inviare e-mail da Excel

Scrivere il codice per inviare un'e-mail con un allegato da Excel è piuttosto complicato, ma vale la pena dedicare del tempo.

Puoi scaricare questo modello Excel di invio e-mail VBA qui - Modello Excel di invio e-mail VBA

Segui i passaggi seguenti per scrivere la tua prima macro Excel per email.

Passo 1

Avvia la sottoprocedura in VBA.

Codice:

 Sub SendEmail_Example1 () End Sub 

Passo 2

Dichiara la variabile Outlook.Application

Codice:

 Dim EmailApp As Outlook.Application 'Per fare riferimento all'applicazione Outlook 

Passaggio 3

La variabile precedente è una variabile oggetto. Dobbiamo creare un'istanza di un nuovo oggetto separatamente. Per creare una nuova istanza dell'oggetto esterno di seguito è il codice.

Codice:

 Set EmailApp = New Outlook.Application 'Per avviare l'applicazione Outlook 

Passaggio 4

Ora per scrivere l'email dichiariamo un'altra variabile come "Outlook.MailItem".

Codice:

 Dim EmailItem As Outlook.MailItem 'Per fare riferimento alla nuova email di Outlook 

Passaggio 5

Per lanciare una nuova email, dobbiamo impostare il riferimento alla nostra variabile precedente come CreateItem.

Codice:

 Set EmailItem = EmailApp.CreateItem (olMailItem) 'Per avviare la nuova email di Outlook 

Ok, ora la variabile “EmailApp” lancerà l'outlook e nella variabile “EmailItem” possiamo iniziare a scrivere l'email.

Passaggio n. 6

Ora dobbiamo essere consapevoli di quali sono gli elementi che abbiamo mentre scriviamo un'e-mail. La prima cosa è decidere per chi inviare l'email. Quindi, per questo, dobbiamo accedere alla proprietà "TO".

Passaggio 7

Immettere l'ID e-mail del destinatario tra virgolette.

Codice:

EmailItem.To = "[email protected]"

Passaggio 8

Dopo essersi rivolti al destinatario principale, se desideri inviare in CC chiunque nell'email, possiamo utilizzare la proprietà "CC".

Codice:

EmailItem.CC = "[email protected]"

Passaggio 9

Dopo il CC possiamo impostare anche l'ID e-mail BCC.

Codice:

EmailItem.BCC = "[email protected]"

Passaggio n. 10

Ora dobbiamo includere l'oggetto dell'email che stiamo inviando.

Codice:

EmailItem.Subject = "Email di prova da Excel VBA"

Passaggio 11

Ora dobbiamo scrivere il corpo dell'email utilizzando il tipo di corpo HTML.

Codice:

EmailItem.HTMLBody = "Hi," & vbNewLine & vbNewLine & "This is my first email from Excel" & _ vbNewLine & vbNewLine & _ "Regards," & vbNewLine & _ "VBA Coder" 'VbNewLine is the VBA Constant to insert a new line 

Step #12

If we want to add an attachment as the current workbook we are working on then we need to use attachments property. First, declare a variable source as a string.

Code:

 Dim Source As String 

Then in this variable write ThisWorkbook.FullName after Email body.

Code:

Source = ThisWorkbook.FullName

In this VBA Code, ThisWorkbook is used for the current workbook and .FullName is used to get the full name of the worksheet.

Then write the following code to attach the file.

Code:

EmailItem.Attachments.Add Source

Step #13

Now finally we need to send the email to the mentioned email ID’s. This can be done by using “Send” method.

Code:

EmailItem.Send

Ok, we are done with the coding part.

Code:

 Sub SendEmail_Example1() 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 = "Test Email From Excel VBA" EmailItem.HTMLBody = "Hi," & vbNewLine & vbNewLine & "This is my first email from Excel" & _ vbNewLine & vbNewLine & _ "Regards," & vbNewLine & _ "VBA Coder" Source = ThisWorkbook.FullName EmailItem.Attachments.Add Source EmailItem.Send End Sub 

Run the above code and it will send the email with the mentioned body of the email with the current workbook as the attachment.