VBA Outlook

Publication Date :

Blog Author :

Download FREE VBA Outlook Excel Template and Follow Along!
VBA Outlook to Excel Template.xlsm

Table Of Contents

arrow

VBA Outlook Meaning

We have seen VBA in Excel and how we automate our tasks in Excel by creating macros. In Microsoft Outlook, we also have a reference for VBA and can control Outlook using VBA. It makes our repeated tasks in Outlook easier to automate. Like Excel, we need to enable the Developer feature to use VBA in Outlook.

The beauty of VBA is we can reference other Microsoft objects like PowerPoint, Word, and Outlook. We can create beautiful presentations. We can work with Microsoft word documents. Finally, we can send the emails as well. Yes, you heard it right. We can send emails from Excel. It sounds awkward but, at the same time, puts a smile on our faces as well. This article will show you how to work with Microsoft Outlook objects from excel using VBA coding. Read on.

VBA Outlook
You are free to use this image on your website, templates, etc.. Please provide us with an attribution link.

How do we Reference Outlook from Excel?

Remember, Outlook is an object. Therefore, we need to set the reference to this in the object reference library. To set the Outlook object to reference, follow the below steps.

Step 1: Go to Visual Basic Editor.

Step 2: Go to Tools > Reference.

Reference Outlook from Excel - Step 2

Step 3: In the below references, object library, scroll down, and select "MICROSOFT OUTLOOK 14.0 OBJECT LIBRARY."

Check the "MICROSOFT OUTLOOK 14.0 OBJECT LIBRARY" box to make it available for Excel VBA.

Reference Outlook from Excel - Step 3

Now, we can access the VBA Outlook object from Excel.

While this discussion provides a solid overview, engaging with more in-depth material can significantly enhance this comprehension. Many find that this Email Automation Using VBA Course complements this knowledge beautifully.

Write a Code to Send Emails from VBA Outlook from Excel

We can send the emails from excel through the outlook app. For this, we need to write VBA codes. Then, follow the below steps to send the emails from Outlook.

Step 1: Create a sub procedure.

Code:

Option Explicit

Sub Send_Exails()

End Sub

Write a Code to Send Emails - Step 1

Step 2: Define the variable as VBA Outlook.Application.

Code:

Option Explicit

Sub Send_Exails()

Dim OutlookApp As Outlook.Application

End Sub

Write a Code to Send Emails - Step 2

Step 3: The above variable reference the VBA Outlook application. In Outlook, we need to send emails, so define another variable as Outlook.MailItem.

Code:

Option Explicit

Sub Send_Exails()

Dim OutlookApp As Outlook.Application

Dim OutlookMail As Outlook.MailItem

End Sub

Write a Code to Send Emails - Step 3

Step 4: Now, both variables are object variables. We need to set them. First, set the variable “OutlookApp” as New Outlook.Application.

Code:

Sub Send_Exails()

Dim OutlookApp As Outlook.Application

Dim OutlookMail As Outlook.MailItem

Set OutlookApp = New Outlook.Application

End Sub

Write a Code to Send Emails - Step 4

Step 5: Now, set the second variable, “OutlookMail,” as below.

Set OutlookMail=OutlookApp.CreateItem(olMailItem)

Code:

Sub Send_Exails()

Dim OutlookApp As Outlook.Application

Dim OutlookMail As Outlook.MailItem

Set OutlookApp = New Outlook.Application

Set OutlookMail = OutlookApp.CreateItem(olMailItem)

End Sub

Write a Code to Send Emails - Step 5

Step 6: Now, using With statement access VBA Outlook Mail.

Code:

Sub Send_Exails()

Dim OutlookApp As Outlook.Application

Dim OutlookMail As Outlook.MailItem

Set OutlookApp = New Outlook.Application

Set OutlookMail = OutlookApp.CreateItem(olMailItem)

With OutlookMail  End With

End Sub

Write a Code to Send Emails - Step 6

Now, we can access all the items available with email items like "Body of the email," "To," "CC," "BCC," "Subject," and many more things.

Step 7: Inside the statement, we can see the IntelliSense list by putting a dot.

Write a Code to Send Emails - Step 7

Step 8: First, select the body format as olFormatHtml.

Code:

With OutlookMail    

.BodyFormat = olFormatHTML 

End With

Write a Code to Send Emails - Step 8

Step 9: Now display the email.

Code:

With OutlookMail  

.BodyFormat = olFormatHTML  

.Display

End With

Write a Code to Send Emails - Step 9

Step 10: We need to write the email in the body of the email. For this, select HtmlBody.

Code:

With OutlookMail  

.BodyFormat = olFormatHTML  

.Display  

.HTMLBody = "Write your email here" 

End With

Write a Code to Send Emails - Step 10

Below is the example of the body of the email writing.

Write a Code to Send Emails - Step 10.1

Step 11: We need to mention the receiver's email ID after writing the email. For this access, "To."

Write a Code to Send Emails - Step 11

Step 12: Next, mention for whom you want to CC the email.

Write a Code to Send Emails - Step 12

Step 13: Now, mention the BCC email ids,

Write a Code to Send Emails - Step 13

Step 14: Next, we need to mention the subject of the email we are sending.

Write a Code to Send Emails - Step 14

Step 15: Now, add attachments. If you want to send the current workbook as an attachment, then use the attachment as This workbook.

Write a Code to Send Emails - Step 15

Step 16: Finally, send the email by using the Send method.

Write a Code to Send Emails - Step 16

Now, this code will send the email from your VBA outlook mail. Use the below VBA code to send emails from your outlook.

To use the below code, you must set the object reference to "MICROSOFT OUTLOOK 14.0 OBJECT LIBRARY" under the object library of Excel VBA.

The library is called early binding by setting the reference to the object. We need to set the reference to the object library because without setting the object library as "MICROSOFT OUTLOOK 14.0 OBJECT LIBRARY." We cannot access the IntelliSense list of VBA properties and methods. It makes writing code difficult because you need to be sure of what you are writing in terms of technique and spelling.

Sub Send_Emails() 

'This code is early binding i.e in Tools > Reference >You have check "MICROSOFT OUTLOOK 14.0 OBJECT LIBRARY"  

Dim OutlookApp As Outlook.Application  

Dim OutlookMail As Outlook.MailItem  

Set OutlookApp = New Outlook.Application  

Set OutlookMail = OutlookApp.CreateItem(olMailItem)

With OutlookMail

.BodyFormat = olFormatHTML

.Display

.HTMLBody = "Dear ABC" & "<br>" & "<br>" & "Please find the attached file" &    .HTMLBody

'last .HTMLBody includes signature from the outlook. ''<br> includes line breaks b/w two lines

.To = "abc@gmail.com"

.CC = "sdf@gamil.com"

.BCC = "hello@gamil.com;hi@gmail.com"

.Subject = "Test mail"

.Attachments = ThisWorkbook

.Send

End With 

End Sub