VBA Skicka e-post från Excel

VBA-kod för att skicka e-post från Excel

I VBA för att skicka e-post från Excel kan vi automatisera vår e-postfunktion så att vi automatiskt kan skicka e-post till flera användare åt gången. För att göra det måste vi komma ihåg att det görs av outlook en annan outlook-produkt så vi måste aktivera outlook skript i VBA för att göra det och när det är klart använder vi .Application-metoden för att använda Outlook-funktioner.

VBA: s mångsidighet är helt fantastisk. Anledningen till att VBA-kodare älskar excel eftersom vi inte bara kan arbeta inom excel med VBA utan vi kan också få tillgång till andra Microsoft-verktyg också. Vi kan komma åt PowerPoint, Word och Outlook med hjälp av VBA. Det som imponerade på mig var när jag hörde "skicka e-post från excel själv". Ja, det är sant att vi kan skicka e-post från Excel. I den här artikeln visar vi dig hur du skickar e-postmeddelanden från Excel med bilagor med VBA-kodning.

Ställ in referens till Microsoft Office Library

Vi måste skicka e-post från Outlook. Eftersom Outlook är ett externt objekt måste vi först ställa in objektreferensen till " Microsoft Outlook 16.0 Object Library ".

  • Gå till Verktyg> Referenser i VBA

  • Nu kommer vi att se objektreferensbiblioteket. I det här fönstret måste vi ställa in referensen till "Microsoft Outlook 16.0 Object Library"

  • När du har ställt in objektreferensen, klicka på Ok.

Nu kan vi komma åt Outlook-objekt i VBA-kodning.

13 enkla steg för att skicka e-post från Excel

Att skriva koden för att skicka ett mejl med en bilaga från Excel är ganska komplicerat, men värt att spendera lite tid.

Du kan ladda ner denna Excel-mall för e-postmeddelanden för VBA här - VBA Excel-mall för e-postmeddelanden

Följ stegen nedan för att skriva ditt första Excel-makro.

Steg 1

Starta delproceduren i VBA.

Koda:

 Sub SendEmail_Example1 () Avsluta Sub 

Steg 2

Deklarera variabeln Outlook.Application

Koda:

 Dim EmailApp As Outlook.Application 'För att hänvisa till Outlook-applikationen 

Steg 3

Ovanstående variabel är en objektvariabel. Vi måste skapa en instans av ett nytt objekt separat. För att skapa en ny instans av det yttre objektet nedan är koden.

Koda:

 Ställ EmailApp = New Outlook.Application 'För att starta Outlook-applikationen 

Steg 4

För att skriva e-postmeddelandet förklarar vi ännu en variabel som “Outlook.MailItem”.

Koda:

 Dim EmailItem As Outlook.MailItem 'För att hänvisa ny Outlook-e-post 

Steg 5

För att starta ett nytt e-postmeddelande måste vi ställa in referensen till vår tidigare variabel som CreateItem.

Koda:

 Ställ EmailItem = EmailApp.CreateItem (olMailItem) 'För att starta ny Outlook-e-post 

Ok, nu startar variabeln "EmailApp" Outlook och i variabeln "EmailItem" kan vi börja skriva e-postmeddelandet.

Steg 6

Nu måste vi vara medvetna om vilka artiklar vi har när vi skriver ett e-postmeddelande. Det första är att vi måste bestämma vem vi skickar e-postmeddelandet. Så för detta måste vi komma åt "TO" -egenskapen.

Steg 7

Ange e-post-ID för mottagaren i dubbla citat.

Koda:

EmailItem.To = "[email protected]"

Steg 8

Efter att ha adresserat till huvudmottagaren kan vi använda egenskapen “CC” om du vill CC någon i e-postmeddelandet.

Koda:

EmailItem.CC = "[email protected]"

Steg 9

Efter CC kan vi också ställa in BCC-e-post-id.

Koda:

EmailItem.BCC = "[email protected]"

Steg # 10

Nu måste vi inkludera ämnet för e-postmeddelandet vi skickar.

Koda:

EmailItem.Subject = "Testa e-post från Excel VBA"

Steg # 11

Nu måste vi skriva brödtexten i e-postmeddelandet med hjälp av HTML-kroppstyp.

Koda:

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.