VBA Wyślij e-mail z programu Excel

Kod VBA do wysyłania wiadomości e-mail z programu Excel

W VBA do wysyłania wiadomości e-mail z programu Excel możemy zautomatyzować naszą funkcję wysyłkową, abyśmy mogli automatycznie wysyłać wiadomości e-mail do wielu użytkowników naraz, aby to zrobić, musimy pamiętać, że jest to wykonywane przez program Outlook, inny produkt programu Outlook, więc musimy włączyć program Outlook skrypty w VBA, a po zakończeniu używamy metody .Application, aby korzystać z funkcji Outlooka.

Wszechstronność VBA jest po prostu niesamowita. Powód, dla którego programiści VBA uwielbiają Excela, ponieważ używając VBA, możemy nie tylko pracować w programie Excel, ale także mieć dostęp do innych narzędzi firmy Microsoft. Możemy uzyskać dostęp do PowerPointa, Worda i Outlooka za pomocą VBA. Imponowało mi, gdy usłyszałem o „wysyłaniu e-maili z samego programu Excel”. Tak, to prawda, że ​​możemy wysyłać e-maile z programu Excel. W tym artykule pokażemy, jak wysyłać wiadomości e-mail z programu Excel z załącznikami za pomocą kodowania VBA.

Ustaw odniesienie do biblioteki Microsoft Office

Musimy wysyłać e-maile z Outlooka. Ponieważ Outlook jest obiektem zewnętrznym, pierwszą rzeczą, którą musimy zrobić, jest ustawienie odniesienia do obiektu na „ Biblioteka obiektów programu Microsoft Outlook 16.0 ”.

  • W VBA przejdź do Narzędzia> Referencje

  • Teraz zobaczymy bibliotekę referencyjną obiektu. W tym oknie musimy ustawić odniesienie na „Biblioteka obiektów programu Microsoft Outlook 16.0”

  • Po ustawieniu odniesienia do obiektu kliknij OK.

Teraz mamy dostęp do obiektu Outlooka w kodowaniu VBA.

13 łatwych kroków do wysyłania wiadomości e-mail z programu Excel

Napisanie kodu do wysłania wiadomości e-mail z załącznikiem z programu Excel jest dość skomplikowane, ale warto poświęcić trochę czasu.

Możesz pobrać ten szablon VBA Wyślij e-mail Excel tutaj - VBA Wyślij e-mail szablon Excela

Wykonaj poniższe czynności, aby napisać swoje pierwsze makro programu Excel do wiadomości e-mail.

Krok 1

Uruchom podprocedurę w języku VBA.

Kod:

 Sub SendEmail_Example1 () End Sub 

Krok 2

Zadeklaruj zmienną Outlook.Application

Kod:

 Dim EmailApp As Outlook.Application „Dotyczy aplikacji Outlook 

Krok 3

Powyższa zmienna jest zmienną obiektową. Musimy osobno utworzyć wystąpienie nowego obiektu. Aby utworzyć nową instancję obiektu zewnętrznego poniżej, należy podać kod.

Kod:

 Ustaw EmailApp = New Outlook.Application 'Aby uruchomić aplikację Outlook 

Krok 4

Teraz, aby napisać wiadomość e-mail, zadeklarowaliśmy jeszcze jedną zmienną jako „Outlook.MailItem”.

Kod:

 Dim EmailItem As Outlook.MailItem 'Aby polecić nową wiadomość e-mail dotyczącą programu Outlook 

Krok 5

Aby uruchomić nowy e-mail, musimy ustawić odwołanie do naszej poprzedniej zmiennej jako CreateItem.

Kod:

 Ustaw EmailItem = EmailApp.CreateItem (olMailItem) 'Aby uruchomić nową pocztę Outlook 

Ok, teraz zmienna „EmailApp” uruchomi outlook, aw zmiennej „EmailItem” możemy zacząć pisać maila.

Krok 6

Teraz musimy być świadomi tego, jakie przedmioty mamy podczas pisania e-maila. Przede wszystkim musimy zdecydować, do kogo wysyłamy e-mail. W tym celu musimy mieć dostęp do właściwości „TO”.

Krok 7

Wprowadź adres e-mail odbiorcy w podwójnych cudzysłowach.

Kod:

EmailItem.To = "[email protected]"

Krok 8

Po zaadresowaniu do głównego odbiorcy, jeśli chcesz przekazać komuś informację zwrotną do wiadomości e-mail, możemy skorzystać z właściwości „DW”.

Kod:

EmailItem.CC = „[email protected]

Krok 9

Po CC możemy również ustawić identyfikator e-mail BCC.

Kod:

EmailItem.BCC = "[email protected]"

Krok 10

Teraz musimy dodać temat e-maila, który wysyłamy.

Kod:

EmailItem.Subject = "Testuj wiadomości e-mail z Excel VBA"

Krok 11

Teraz musimy napisać treść wiadomości e-mail przy użyciu typu HTML Body.

Kod:

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.