Makro do wysyłania wiadomości e-mail z Excela (5 odpowiednich przykładów)

  • Udostępnij To
Hugh West

W tym artykule pokażemy. 5 Makro do wysłać e-mail z Excel Aby zademonstrować nasze metody, wybraliśmy zbiór danych z 3 kolumny : " Nazwa ", " Email ", oraz " Miasto ".

Pobierz Zeszyt ćwiczeń

Użycie makra do wysłania e-maila.xlsm

5 sposobów na wykorzystanie makra do wysyłania e-maili z Excela

1. wykorzystanie biblioteki obiektów programu Outlook do wysyłania wiadomości e-mail

Na pierwszy Makro , włączymy " Biblioteka obiektów Microsoft Outlook 16.0 " do wysłać an email z Excel . Ponadto musimy się zalogować do naszego Outlook konto w Excel .

Kroki:

Na początku przywołamy. Visual Basic okno.

  • Po pierwsze, z Deweloper tab>>> wybierz Visual Basic .

Alternatywnie można nacisnąć ALT + F11 aby wyświetlić VBA okno.

  • Po drugie, z Narzędzia >>> wybierz " Referencje... ".

Nowy okno dialogowe pojawi się.

  • Po trzecie, wybierz " Biblioteka obiektów Microsoft Outlook 16.0 ", i naciśnij OK .

W ten sposób umożliwimy Biblioteka obiektów programu Outlook .

  • Ich z Wkładka >>> wybierz Moduł .

Tutaj wpiszemy nasz kod.

  • Następnie należy wpisać następujący kod.
 Sub Macro_Send_Email() Dim eApp As Outlook.Application Dim eSource As String Set eApp = New Outlook.Application Dim eItem As Outlook.MailItem Set eItem = eApp.CreateItem(olMailItem) eItem.To = Range("C5").Value 'Te elementy są opcjonalne 'eItem.CC = "[email protected]" 'etem.BCC = "[email protected]" eItem.Subject = "Wysyłanie e-maila za pomocą VBA z Excela" eItem.Body = "Witaj," & vbNewLine &"Hope this email finds you well." & _ vbNewLine & vbNewLine & _ "Sincerely," & vbNewLine & "Exceldemy" 'Jeśli chcesz załączyć ten skoroszyt, to odkomentuj te dwie linijki od dołu 'Source = ThisWorkbook.FullName 'eItem.Attachments.Add Source eItem.Display 'może użyć .Send End Sub 

Podział kodu VBA

  • Po pierwsze, nazywamy nasz Procedura cząstkowa Makro_Send_Email .
  • Po drugie, deklarujemy. zmienna typy.
  • Po trzecie, wybieramy Outlook jako nasz Zgłoszenie pocztowe .
  • Następnie wybieramy nasz email adres wysyłania z komórka C5 .
  • Następnie. email zawartość jest ustawiona w naszym kodzie.
  • W końcu " VBA Właściwość wyświetlania " jest używany tutaj do wyświetlania naszego email . Dlatego będziemy musieli nacisnąć Wyślij ręcznie do wysłać the maile Co więcej, możemy użyć " Wyślij własność " do wysyłać e-maile bez wyświetlania.
  • Po tym, Zapisz i zamknąć Moduł .

Teraz, będziemy Uruchom kod.

  • Po pierwsze, z Deweloper tab>>> wybierz Makra .

Na stronie Okno dialogowe Makro pojawi się.

  • Po drugie, wybierz nasz Procedura cząstkowa " Makro_Send_Email ".
  • Na koniec naciśnij Uruchom .

Po wykonaniu kodu zobaczymy. email Możemy kliknąć na Wyślij . Tak więc, pokazaliśmy ci pierwszą metodę wysyłanie an email z excel używając VBA .

Read More: Wyślij e-mail z Excel VBA bez Outlooka (4 Odpowiednie przykłady)

2. Makro do wysyłania wiadomości e-mail z konta Gmail w programie Excel

Dla tej metody potrzebujemy mniej bezpieczny dostęp do aplikacji od Gmail Dodatkowo będziemy musieli włączyć Microsoft CDO od Referencje menu.

Kroki:

  • Po pierwsze, jak pokazano w pierwszej metodzie , podnieść Okno dialogowe Odniesienia .
  • Po drugie, wybierz " Biblioteka Microsoft CDO dla Windows 2000 " i naciśnij OK .

  • Po trzecie, przejdź do Bezpieczeństwo z twojego Ustawienia konta Google .
  • Na koniec włącz Mniej bezpieczny dostęp do aplikacji .

Teraz wprowadzimy nasze Makro kod.

  • Po pierwsze, jak pokazano w metodzie 1 , podnieść Moduł i wpisz ten kod.
 Option Explicit Sub Send_Gmail_Macro() Dim cMail As Object Dim cConfig As Object Dim sConfig As Variant Dim cSubject As String Dim cFrom As String Dim cTo As String Dim cCC As String Dim cBcc As String Dim cBody As String cSubject = "Makro do wysłania Gmail" cFrom = "[email protected]" cTo = "[email protected]" cBody = "Witam. To jest wiadomość automatyczna, proszę nie odpowiadać" Set cMail =.CreateObject("CDO.Message") On Error GoTo Error_Handling Set cConfig = CreateObject("CDO.Configuration") cConfig.Load -1 Set sConfig = cConfig.Fields With sConfig .Item("//schemas.microsoft.com/cdo/configuration/sendusing") = 2 .Item("//schemas.microsoft.com/cdo/configuration/smtpserver") = "smtp.gmail.com" .Item("//schemas.microsoft.com/cdo/configuration/smtpauthenticate") = 1.Item("//schemas.microsoft.com/cdo/configuration/sendusername") = "[email protected]" .Item("//schemas.microsoft.com/cdo/configuration/sendpassword") = "SenderGmailPassword" .Item("//schemas.microsoft.com/cdo/configuration/smtpserverport") = 465 .Item("//schemas.microsoft.com/cdo/configuration/smtpusessl") = True .Update End With With cMail Set .Configuration = cConfig End With cMail.Subject =cSubject cMail.From = cFrom cMail.To = cTo cMail.TextBody = cBody cMail.CC = cCC cMail.BCC = cBcc cMail.Send Error_Handling: If Err.Description "" Then MsgBox Err.Description End Sub 

Podział kodu VBA

  • Po pierwsze, nazywamy nasz Procedura cząstkowa Wyślij_Gmail_Makro .
  • Po drugie, deklarujemy. zmienna typy.
  • Po trzecie, ustawiamy email w naszym kodzie.
  • Następnie, dostarczamy naszą dane uwierzytelniające . You need to type your own ID oraz Hasło tutaj.
  • Po tym, wyruszyliśmy port do 465 .
  • Wreszcie, jesteśmy wysyłanie nasz email .
  • Następnie, Zapisz oraz Uruchom ten kod.

Udało nam się wysłany an email na nasz adres.

Read More: Makro do wysyłania e-maili z Excela z treścią (3 użyteczne przypadki)

3. wysłać e-mail do listy odbiorców z kolumny

W przypadku trzeciej metody, zamierzamy wysyłać e-maile do 7 osoby korzystające z Makro z Excel . We'll find the last wiersz naszego zbioru danych, stąd nasz kod będzie działał dla dłuższej listy.Będziemy wysyłać e-maile od komórka C5:C10 zakres.

Kroki:

  • Po pierwsze, jak pokazano w metodzie 1 , podnieść Moduł i wpisz ten kod.
 Sub Macro_Send_Email_From_A_List() Dim pApp As Object Dim pMail As Object Dim z As Integer Dim eList As String Dim eRow As Long Set pApp = CreateObject("Outlook.Application") Set pMail = pApp.CreateItem(0) eRow = Range("C:C").SpecialCells(xlCellTypeLastCell).Row - 1 With pMail eList = "" For z = 5 To eRow If eList = "" Then eList = Cells(z, 3).Value Else eList = eList & ";" & Cells(z,3).Value End If Next z .BCC = eList .Subject = "Hello There" .Body = "This Message is brought to you by Exceldemy." .Display 'You can use .Send here End With Set pMail = Nothing Set pApp = Nothing End Sub 

Podział kodu VBA

  • Po pierwsze, nazywamy nasz Procedura cząstkowa Makro_Send_Email_From_A_List .
  • Po drugie, deklarujemy. zmienna typy.
  • Po trzecie, wybieramy Outlook jako nasz Zgłoszenie pocztowe .
  • Następnie, znajdujemy ostatni rząd , czyli 10 dla naszego zbioru danych.
  • Po tym, jak nasz email zaczyna się od rząd 5 wprowadziliśmy 5 jako wartość początkową dla " zmienna z ". Co więcej, nasz maile są na C kolumna stąd wprowadziliśmy 3 wewnątrz Komórki nieruchomość.
  • Następnie ustawiamy email w naszym kodzie.
  • W końcu " .Display " jest używany tutaj do wyświetlania naszego email . Dlatego będziemy musieli nacisnąć Wyślij ręcznie do wysłać the maile Co więcej, możemy użyć " .Wyślij " do wysłać e-mail bez wyświetlania.
  • Następnie, Zapisz oraz Uruchom the Moduł .

Widzimy, że wszystkie nasze maile są wyświetlane w BCC Podsumowując, możemy po prostu nacisnąć Wyślij aby wykonać nasze zadanie.

Read More: Jak wysłać e-mail z listy Excela (2 skuteczne sposoby)

Podobne lektury

  • Jak wysłać e-mail automatycznie po spełnieniu warunku w Excelu
  • Jak udostępnić plik Excela online (2 proste metody)
  • Automatyczne wysyłanie e-maila z przypomnieniem z arkusza Excela przy użyciu VBA
  • Jak wysłać e-mail, jeśli warunki spełnione w Excelu (3 proste metody)
  • Jak włączyć udostępnianie skoroszytu w programie Excel

4. Makro do wysyłania pojedynczych arkuszy za pomocą poczty elektronicznej

W tej sekcji, będziemy wysłać the Aktywny arkusz roboczy do naszej osoby docelowej. Tutaj będziemy musieli wybrać lokalizację naszego Excel akta.

Kroki:

  • Po pierwsze, jak pokazano w metodzie 1 , podnieść Moduł i wpisz ten kod.
 Sub Macro_Email_Single_Sheet( Dim pApp As Object Dim pMail As Object Dim zBook As Workbook Dim fxName As String 'Dim zSheet As Worksheet 'Dim shtName As String Application.ScreenUpdating = False ActiveSheet.Copy Set zBook = ActiveWorkbook fxName = zBook.Worksheets(1).Name On Error Resume Next Kill "C:\u20000\u20000\u20000\u20000\u20000\u20000\u20000\u20000\u20000\u20000; fxName On Error GoTo 0 zBook.SaveAsFileName:="C:\u2004\u2004\u2004" & fxName Set pApp = CreateObject("Outlook.Application") Set pMail = pApp.CreateItem(0) With pMail .To = "[email protected]" .Subject = "Macro to Send Single Sheet via Email" .Body = "Dear RecieverName," & vbCrLf & vbCrLf & _ "Your requested file is attached" .Attachments.Add zBook.FullName .Display End WithzBook.ChangeFileAccess Mode:=xlReadOnly Kill zBook.FullName zBook.Close SaveChanges:=False Application.ScreenUpdating = True Set pMail = Nothing Set pApp = Nothing End Sub 

Podział kodu VBA

  • Po pierwsze, nazywamy nasz Procedura cząstkowa Makro_Email_Single_Sheet .
  • Po drugie, deklarujemy. zmienna typy.
  • Po trzecie, kopiujemy Aktywny arkusz i zapisanie go jako oddzielnego Workbook .
  • Po tym wybieramy Outlook jako nasz Zgłoszenie pocztowe .
  • Następnie ustawiamy email w naszym kodzie.
  • Następnie dołączyliśmy. Arkusz do email .
  • Na koniec należy użyć " .Wyświetlanie ", aby wyświetlić nasz email . Dlatego będziemy musieli nacisnąć Wyślij ręcznie do wysłać the maile Co więcej, możemy użyć " .Wyślij " do wysłać e-mail bez wyświetlania.
  • Następnie, Zapisz oraz Uruchom the Moduł .

Zobaczymy Arkusz nazwa w oknie. naciśnij Wyślij aby wykonać zadanie.

Możemy otwórz plik i sprawdzić, czy nasz kod działa.

Read More: Jak wysłać edytowalny arkusz Excel przez e-mail (3 szybkie metody)

5. Makro do wysyłania wiadomości e-mail na podstawie wartości komórki

Dla ostatniej metody zmieniliśmy nieco nasz zestaw danych, dodaliśmy " Płatność Due " kolumna do zbioru danych. Tutaj, będziemy wysłać an email który zawiera miasto " Obama ". Widzimy wyraźnie, że rząd 5 zawiera go, więc będziemy wysłać an email tylko dla tej osoby.

Kroki:

  • Po pierwsze, jak pokazano w metodzie 1 , podnieść Moduł i wpisz ten kod.
 Option Explicit Sub Send_Email_Condition() Dim xSheet As Worksheet Dim mAddress As String, mSubject As String, eName As String Dim eRow As Long, x As Long Set xSheet = ThisWorkbook.Sheets("Conditions") With xSheet eRow = .Cells(.Rows.Count, 5).End(xlUp).Row For x = 5 To eRow If .Cells(x, 4)>= 1 And .Cells(x, 5) = "Obama" Then mAddress = .Cells(x, 3) mSubject = "Request For Payment" eName =..Cells(x, 2) Call Send_Email_With_Multiple_Condition(mAddress, mSubject, eName) End If Next x End With End Sub Sub Send_Email_With_Multiple_Condition(mAddress As String, mSubject As String, eName As String) Dim pApp As Object Dim pMail As Object Set pApp = CreateObject("Outlook.Application") Set pMail = pApp.CreateItem(0) With pMail .To = mAddress .CC = "" .BCC = "" .Subject = mSubject .Body =."Pan/Pani " & eName & ", Proszę zapłacić należną kwotę w ciągu najbliższego tygodnia." _ & vbNewLine & "Dokładna kwota jest załączona do tego maila." .Attachments.Add ActiveWorkbook.FullName 'Send The File via Email .Display 'Możemy użyć .Send także tutaj End With Set pMail = Nothing Set pApp = Nothing End Sub 

Podział kodu VBA

  • Po pierwsze, nazywamy nasz pierwszy Procedura cząstkowa Send_Email_Condition .
  • Po drugie, deklarujemy. Zmienna rodzaje i ustawienie " Warunki " jako nasz Arkusz .
  • Po trzecie, ostatnie wiersz Co więcej, nasza wartość zaczyna się od rząd 5 , stąd umieściliśmy rząd 5 do ostatniego wiersz w naszym kodzie.
  • Następnie wywołaj nasz drugi Procedura cząstkowa Send_Email_With_Multiple_Condition .
  • Po tym wybieramy Outlook jako nasz Zgłoszenie pocztowe .
  • Następnie. email zawartość jest ustawiona w naszym kodzie.
  • Tutaj dołączamy Excel plik z email używając Załącznik metoda.
  • Po tym, " .Wyświetlanie " jest używany tutaj do wyświetlania naszego email . Dlatego będziemy musieli nacisnąć Wyślij ręcznie do wysłać the maile Co więcej, możemy użyć " .Wyślij " do wysłać e-mail bez wyświetlania.
  • Następnie, Zapisz oraz Uruchom the Moduł .

Podsumowując, pokazaliśmy Ci jeszcze jedną metodę wysyłanie an email przy użyciu Makro VBA z Excel .

Read More: Automatycznie wysyłaj wiadomości e-mail z programu Excel na podstawie zawartości komórek (2 metody)

Część ćwiczeniowa

Dodaliśmy zestawy danych do ćwiczeń dla każdej metody w Excel akta.

Wniosek

Pokazaliśmy ci 5 metody do wykorzystania Makro do wysłać an email z Excel Dzięki za przeczytanie, nie przestawajcie się doskonalić!

Hugh West jest bardzo doświadczonym trenerem i analitykiem Excela z ponad 10-letnim doświadczeniem w branży. Posiada tytuł licencjata w dziedzinie rachunkowości i finansów oraz tytuł magistra administracji biznesowej. Hugh ma pasję do nauczania i opracował unikalne podejście do nauczania, które jest łatwe do naśladowania i zrozumienia. Jego specjalistyczna wiedza na temat programu Excel pomogła tysiącom studentów i profesjonalistów na całym świecie doskonalić swoje umiejętności i osiągać doskonałe wyniki w karierze. Za pośrednictwem swojego bloga Hugh dzieli się swoją wiedzą ze światem, oferując bezpłatne samouczki programu Excel i szkolenia online, aby pomóc osobom indywidualnym i firmom w pełni wykorzystać swój potencjał.