Spis treści
Ten poradnik pokaże, jak używać makra Excela do automatycznego wysyłania wiadomości e-mail. Możemy skonfigurować naszą funkcję mailingową używając VBA makra. Tak więc, używając VBA makro możemy wysłać email do wielu użytkowników w tym samym czasie.Musimy mieć Outlook zainstalowany na naszym urządzeniu do automatycznego wysyłania maili za pomocą makra. Ponieważ kod, który wstawimy będzie wykorzystywał Outlook aby wysłać wiadomości e-mail do odbiorców.
Pobierz Zeszyt ćwiczeń
Zeszyt ćwiczeń można pobrać stąd.
Automatycznie wysyłaj wiadomości e-mail.xlsm3 Odpowiednie przykłady Makro Excel do wysyłania wiadomości e-mail automatycznie
W tym artykule zademonstrujemy 3 Odpowiednie przykłady użycia makra Excela do automatycznego wysyłania wiadomości e-mail do odbiorców. Przed rozpoczęciem ilustrowania przykładu musimy naprawić pewną rzecz w naszym arkuszu Excela. Wykonaj poniższe kroki przed zastosowaniem makra do automatycznego wysyłania wiadomości e-mail.
KROKI:
- Najpierw, z poziomu swojego zbioru danych, przejdź do zakładka Deweloper Wybierz opcję Visual Basic .
- Następnie należy przejść do Narzędzie i wybrać opcję Referencje .
- Pojawia się nowe okno dialogowe o nazwie ' Referencje - VBAProject ' otworzy się.
- Na koniec należy zaznaczyć opcję Biblioteka obiektów Microsoft Office 16.0 ' i kliknij na OK .
1. zastosować Makro Excel VBA do wysyłania wiadomości e-mail automatycznie na podstawie wartości komórki
Przede wszystkim zastosujemy excel VBA makro do automatycznego wysyłania wiadomości e-mail na podstawie określonej wartości komórki w naszym zbiorze danych. Aby zilustrować ten przykład, użyjemy następującego zbioru danych. Napiszemy kod, który wyśle wiadomość e-mail automatycznie, jeśli wartość komórki w komórce D6 jest większa niż 400 .
Zobaczmy kroki, aby wykonać tę akcję.
KROKI:
- Na początek, prawo - kliknij na arkuszu W oparciu o komórki '.
- Dodatkowo należy wybrać opcję Wyświetl kod '.
- Powyższa czynność otworzy puste okno VBA Innym sposobem otwarcia okna z kodem dla tego arkusza jest naciśnięcie przycisku Alt + F11 .
- Ponadto w tym oknie kodu wpisz następujący kod:
Dim rg As Range Private Sub Worksheet_Change(ByVal Target As Range) On Error Resume Next If Target.Cells.Count> 1 Then Exit Sub Set rg = Intersect(Range("D6"), Target) If rg Is Nothing Then Exit Sub If IsNumeric(Target.Value) And Target.Value> 400 Then Call send_mail_outlook End If End Sub Sub send_mail_outlook() Dim z As Object Dim y As Object Dim b As String Set z =.CreateObject("Outlook.Application") Set y = z.CreateItem(0) b = "Hello!" & vbNewLine & vbNewLine & _ "Hope you are well" & vbNewLine & _ "Visit our site Exceldemy" On Error Resume Next With y .To = "Address" .cc = "" .BCC = "" .Subject = "send mail based on cell value" .Body = b .Display End With On Error GoTo 0 Set y = Nothing Set z = Nothing End Sub
- Następnie należy kliknąć przycisk Uruchom lub naciśnij przycisk F5 aby uruchomić kod.
- Pojawi się nowe okno dialogowe o nazwie Makra pojawi się.
- Po tym, w Nazwa makra w polu wybierz makro wysyłać_mail_outlook '.
- Teraz kliknij na Uruchom przycisk.
- Wreszcie, od teraz, gdy wartość komórki w komórce D6> 400 wiadomość e-mail w Outlook wygeneruje się automatycznie z konkretnymi odbiorcami. Musimy tylko kliknąć na Wyślij aby wysłać wiadomość e-mail.
Read More: Automatycznie wysyłaj wiadomości e-mail z programu Excel na podstawie zawartości komórek (2 metody)
2. automatyczne wysyłanie e-maili w oparciu o datę płatności za pomocą makra VBA
W drugiej metodzie wykorzystamy program Excel VBA makro do automatycznego wysyłania wiadomości e-mail, gdy zbliża się termin realizacji jakiegoś projektu. Jest to coś w rodzaju przypomnienia. Do zilustrowania tego przykładu użyjemy następującego zbioru danych. Zbiór danych zawiera wiadomości e-mail różnych handlowców, wiadomości oraz termin realizacji ich projektu.
Wykonaj poniższe kroki, aby wykonać tę metodę.
KROKI:
- Najpierw kliknij prawym przyciskiem myszy na arkusz Data .
- Następnie należy wybrać opcję Wyświetl kod '.
- Otwiera puste miejsce VBA okno kodu dla aktywnego arkusza. Możemy również nacisnąć Alt + F11 aby uzyskać to okno z kodem.
- Następnie w tym oknie kodu wstaw następujący kod:
Public Sub Based_on_Date() Dim aRgDate As Range Dim aRgSend As Range Dim aRgText As Range Dim aRgDone As Range Dim aOutApp As Object Dim aMailItem As Object Dim aLastRow As Long Dim CrLf As String Dim aMailBody As String Dim zRgDateVal As String Dim zRgSendVal As String Dim aMailSubject As String Dim j As Long On Error Resume Next Set aRgDate = Application.InputBox("wybierz kolumnę z due.date:", _ "Send Mail Base on Date", , , , , 8) If aRgDate Is Nothing Then Exit Sub Set aRgSend = Application.InputBox("wybierz kolumnę odbiorców maila:", _ "Send Mail Base on Date", , , , 8) If aRgSend Is Nothing Then Exit Sub Set aRgText = Application.InputBox("wybierz kolumnę treści maila:", _ "Send Mail Base on Date", , , , 8) If aRgText Is Nothing Then Exit Sub aLastRow =aRgDate.Rows.Count Set aRgDate = aRgDate(1) Set aRgSend = aRgSend(1) Set aRgText = aRgText(1) Set aOutApp = CreateObject("Outlook.Application") For j = 1 To aLastRow zRgDateVal = "" zRgDateVal = aRgDate.Offset(j - 1).Value If zRgDateVal "" Then If CDate(zRgDateVal) - Date 0 Then zRgSendVal = aRgSend.Offset(j - 1).Value aMailSubject = aRgText.Offset(j - 1).Value & " on " & zRgDateVal CrLf= "
" aMailBody = "" aMailBody = aMailBody & "Hello " & zRgSendVal & CrLf aMailBody = aMailBody & "Message: " & aRgText.Offset(j - 1).Value & CrLf aMailBody = aMailBody & "" Set aMailItem = aOutApp.CreateItem(0) With aMailItem .Subject = aMailSubject .To = zRgSendVal .HTMLBody = aMailBody .Display End With Set aMailItem = Nothing End If Next Set aOutApp = Nothing EndSub
- Teraz użyj Uruchom lub przycisk F5 aby uruchomić kod.
- Pojawi się nowe okno dialogowe.
- Następnie w polu wprowadzania danych w tym oknie dialogowym należy wybrać zakres kolumny daty wymagalności D$5:$D$9 Następnie kliknij na OK .
- Pojawi się jeszcze jedno okno dialogowe.
- Ponadto w polu wprowadzania danych wybierz zakres kolumn B$5:$B$9 który zawiera adresy e-mail i kliknij na OK .
- Ponadto pojawi się jeszcze jedno okno, w którym należy wybrać zakres wiadomości $C$5:$C$9 w polu wprowadzania danych w oknie pop.
- W końcu możemy zobaczyć wyniki jak na poniższym obrazku.Otrzymujemy 3 e-maile, które są automatycznie tworzone w 3 różne okna Outlook Nie utworzy to poczty dla dwóch pierwszych adresów e-mail. Ponieważ termin realizacji tych dwóch projektów minął.
Read More: Jak automatycznie wysłać e-mail z Excela na podstawie daty
Podobne lektury
- [Rozwiązany]: Share Workbook Not Showing in Excel (with Easy Steps)
- Jak wysłać e-mail z listy Excela (2 skuteczne sposoby)
- Jak wysłać edytowalny arkusz Excel przez e-mail (3 szybkie metody)
- Makro do wysyłania wiadomości e-mail z Excela (5 odpowiednich przykładów)
- Makro do wysyłania wiadomości e-mail z Excela z treścią (3 użyteczne przypadki)
3. użyj makra w Excelu, aby wysłać e-mail automatycznie z załącznikami
W ostatnim przykładzie zobaczymy, jak możemy stworzyć makro Excela do automatycznego wysyłania e-maili z załącznikami. Załóżmy, że mamy załącznik na poniższym obrazku. Chcemy wysłać ten załącznik e-mailem za pomocą Excela VBA makro. aby to zrobić potrzebujemy ścieżki tego pliku excel, oto kroki do tego:
- Wybierz plik Załącznik.xlsx ' '.
- Kliknij na opcję Kopiowanie ścieżki '.
- Czyli ścieżka do pliku, który otrzymujemy:
Wstawimy tę ścieżkę do naszego kodu makra, aby wysłać ten plik e-mailem. Wykonaj poniższe kroki, aby to zrobić.
KROKI:
- Po pierwsze, przejdź do Deweloper i wybrać opcję Visual Basic .
- Pojawi się nowe okno o nazwie ' Projekt - otworzy się VBAProject '.
- Po drugie, kliknij prawym przyciskiem myszy na stronie na nazwę arkusza.
- Następnie należy wybrać Wkładka > Moduł .
- Powyższe polecenie otworzy puste okno VBA
- Po trzecie, wpisz w tym Module następujący kod:
Sub send_Email_complete() Dim MyOutlook As Object Set MyOutlook = CreateObject("Outlook.Application") Dim MyMail As Object Set MyMail = MyOutlook.CreateItem(olMailItem) MyMail.To = "[email protected]" MyMail.cc = "[email protected]" MyMail.BCC = "[email protected]" MyMail.Subject = "Wysyłanie maila za pomocą VBA." MyMail.Body = "To jest przykładowy mail." Attached_File = "E:\NZałącznik.xlsx"MyMail.Attachments.Add Attached_File MyMail.send End Sub
- Następnie, uderz w F5 lub kliknij przycisk Uruchom aby uruchomić kod.
- Na koniec kod wyśle załącznik na podane w kodzie maile.Kod wysyła maile przez Outlook . Więc, kliknij na Pozwól przycisk, aby pozwolić Outlook wyślij załącznik na podane maile.
Read More: Jak zastosować makro do wysyłania e-maili z Excela z załącznikiem
Wniosek
Podsumowując, artykuł ten pokazuje. 3 przykłady zastosowania programu excel VBA makro do automatycznego wysyłania poczty. Pobierz przykładowy arkusz podany w tym artykule, aby sprawdzić swoje umiejętności. Jeśli masz jakieś pytania, zostaw komentarz w polu poniżej. Nasz zespół postara się odpowiedzieć na Twoją wiadomość tak szybko, jak to możliwe. Miej oko na więcej pomysłowych Microsoft Excel rozwiązania w przyszłości.