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. Piuttosto 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 email dallo stesso Excel". Si è vero. 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 all'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.
Segui i passaggi seguenti per scrivere la tua prima macro di 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 è riportato il codice.
Codice:
Set EmailApp = New Outlook.Application 'Per avviare l'applicazione Outlook
Passaggio 4
Ora, per scrivere l'e-mail, 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à 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 durante la scrittura di un'e-mail. La prima cosa è decidere a 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 esserti rivolto al destinatario principale, se desideri inviare in CC chiunque nell'email, possiamo utilizzare la proprietà "CC".
Codice:
EmailItem.CC = "[email protected]"
Passaggio n. 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 = "Ciao," & vbNewLine & vbNewLine & "Questa è la mia prima email da Excel" & _ vbNewLine & vbNewLine & _ "Saluti," & vbNewLine & _ "VBA Coder" "VbNewLine è la costante VBA per inserire una nuova linea
Passaggio 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 IDs. This can be done by using the “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 = "Email di prova da Excel VBA" EmailItem.HTMLBody = "Ciao," & vbNewLine & vbNewLine & "Questa è la mia prima email da Excel "& _ vbNewLine & vbNewLine & _" Saluti, "& vbNewLine & _" VBA Coder "Source = ThisWorkbook.FullName EmailItem.Attachments.Add Source EmailItem.Send End Sub
Esegui il codice sopra e invierà l'e-mail con il corpo dell'e-mail menzionato con la cartella di lavoro corrente come allegato.