Makro aplikace Excel pro automatické odesílání e-mailů (3 vhodné příklady)

  • Sdílet Toto
Hugh West

V tomto návodu si ukážeme, jak pomocí makra v Excelu automaticky odeslat e-mail. Funkci odesílání e-mailů můžeme nakonfigurovat pomocí příkazu VBA makra. Takže pomocí VBA makro můžeme poslat e-mail více uživatelům najednou. Musíme mít Outlook nainstalovaný v našem zařízení, aby automaticky odesílal e-maily pomocí makra. Protože kód, který vložíme, bude používat Outlook odesílat e-maily příjemcům.

Stáhnout cvičebnici

Cvičebnici si můžete stáhnout zde.

Automatické odesílání e-mailů.xlsm

3 vhodné příklady makra aplikace Excel pro automatické odesílání e-mailů

V tomto článku si ukážeme. 3 vhodné příklady použití makra excelu pro automatické odeslání e-mailu příjemcům. Než začneme ilustrovat příklad, musíme v našem listu excelu něco opravit. Před použitím makra pro automatické odeslání e-mailu dokončete níže uvedené kroky.

KROKY:

  • Nejprve z datové sady přejděte na stránku karta Vývojář . Vyberte možnost Visual Basic .

  • Poté přejděte do Nástroj a vyberte možnost Odkazy .

  • Zobrazí se nové dialogové okno s názvem Reference - VBAProject ' se otevře.
  • Nakonec zaškrtněte možnost Knihovna objektů Microsoft Office 16.0 ' a klikněte na OK .

1. Použití makra Excel VBA pro automatické odeslání e-mailu na základě hodnoty buňky

V první řadě použijeme program excel VBA makro, které automaticky odešle e-mail na základě konkrétní hodnoty buňky v našem datovém souboru. Pro ilustraci tohoto příkladu použijeme následující datový soubor. Napíšeme kód, který automaticky odešle e-mail, pokud hodnota buňky v buňce D6 je větší než 400 .

Podívejme se na postup provedení této akce.

KROKY:

  • Začněme tím, že, vpravo - klikněte na na listu Na základě Cell '.
  • Dále vyberte možnost Zobrazit kód '.

  • Výše uvedená akce otevře prázdný VBA Další způsob, jak otevřít okno kódu pro daný list, je stisknout tlačítko Alt + F11 .
  • Dále do tohoto okna kódu zadejte následující kód:
 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 
  • Poté klikněte na Spustit nebo stiskněte tlačítko F5 spustit kód.

  • Zobrazí se nové dialogové okno s názvem Makra se objeví.
  • Poté v Název makra vyberte makro ' send_mail_outlook '.
  • Nyní klikněte na Spustit tlačítko.

  • A konečně, od této chvíle, kdy hodnota v buňce D6> 400 e-mail v Outlook se vygeneruje automaticky s konkrétními příjemci. Stačí kliknout na tlačítko Odeslat odeslat e-mail.

Přečtěte si více: Automatické odesílání e-mailů z aplikace Excel na základě obsahu buněk (2 metody)

2. Automatické odesílání e-mailů na základě data splatnosti pomocí makra VBA

Při druhém způsobu použijeme aplikaci Excel. VBA Makro pro automatické odeslání e-mailu, pokud se blíží datum splatnosti nějakého projektu. Jedná se o něco jako upomínku. Pro ilustraci tohoto příkladu použijeme následující datovou sadu. Datová sada obsahuje e-maily různých prodejců, zprávy a datum splatnosti jejich projektu.

Tuto metodu provedete podle následujících kroků.

KROKY:

  • Nejprve klikněte pravým tlačítkem myši na list Datum .
  • Dále vyberte možnost Zobrazit kód '.

  • Otevře se prázdné okno VBA okno kódu pro aktivní pracovní list. Můžeme také stisknout tlačítko Alt + F11 abyste získali okno s kódem.
  • Poté do tohoto okna kódu vložte následující kód:
 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("select the column of duedate:", _ "Send Mail Base on Date", , , , , , 8) If aRgDate Is Nothing Then Exit Sub Set aRgSend = Application.InputBox("select the email recipients column:", _ "Send Mail Base on Date", , , , , , 8) If aRgSend Is Nothing Then Exit Sub Set aRgText = Application.InputBox("Select the content column of email:", _ "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 End If Next Set aOutApp = Nothing EndSub

  • Nyní použijte Spustit nebo tlačítko F5 spustit kód.

  • Zobrazí se nové dialogové okno.
  • Poté ve vstupním poli tohoto dialogového okna vyberte rozsah sloupce s datem splatnosti. D$5:$D$9 Pak klikněte na OK .

  • Zobrazí se ještě jedno dialogové okno.
  • Dále ve vstupním poli vyberte rozsah sloupců. B$5:$B$9 který obsahuje e-mailové adresy, a klikněte na OK .

  • Kromě toho se zobrazí ještě jedno okno. Vyberte rozsah zpráv. $C$5:$C$9 do vstupního pole vyskakovacího okna.

  • Nakonec můžeme vidět výsledky jako na následujícím obrázku. Dostaneme 3 e-maily, které se automaticky vytvářejí v 3 různá okna Outlook . Tím se nevytvoří pošta pro první dvě e-mailové adresy. Protože datum splatnosti těchto dvou projektů již vypršelo.

Přečtěte si více: Jak automaticky odeslat e-mail z aplikace Excel na základě data

Podobná čtení

  • [Řešeno]: Sdílení sešitu se nezobrazuje v aplikaci Excel (se snadnými kroky)
  • Jak odeslat e-mail ze seznamu aplikace Excel (2 efektivní způsoby)
  • Jak odeslat upravitelnou tabulku aplikace Excel e-mailem (3 rychlé metody)
  • Makro pro odesílání e-mailů z aplikace Excel (5 vhodných příkladů)
  • Makro pro odeslání e-mailu z aplikace Excel s tělem (3 užitečné případy)

3. Použití makra aplikace Excel k automatickému odesílání e-mailů s přílohami

V posledním příkladu si ukážeme, jak můžeme vytvořit excelovské makro pro automatické odesílání e-mailu s přílohami. Předpokládejme, že máme přílohu na následujícím obrázku. Tuto přílohu chceme odeslat prostřednictvím e-mailu pomocí excelu. VBA makro. K tomu potřebujeme cestu k tomuto souboru Excel. Zde je uveden postup:

  • Vyberte soubor Příloha.xlsx ' '.
  • Klikněte na možnost Kopírovat cestu '.

  • Takže cesta k souboru, který dostaneme:
E:\Exceldemy\Příloha.xlsx

Tuto cestu vložíme do našeho makrokódu pro odeslání tohoto souboru e-mailem. Postupujte podle níže uvedených kroků.

KROKY:

  • Nejprve přejděte na Vývojář a vyberte možnost Visual Basic .

  • Zobrazí se nové okno s názvem Projekt - otevře se VBAProject '.
  • Za druhé, klikněte pravým tlačítkem myši na na název listu.
  • Pak vyberte Vložte > Modul .

  • Výše uvedený příkaz otevře prázdný VBA
  • Za třetí zadejte do tohoto modulu následující kód:
 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 = "Odesílání e-mailu pomocí VBA." MyMail.Body = "Toto je ukázkový mail." Attached_File = "E:\Exceldemy\Attachment.xlsx"MyMail.Attachments.Add Attached_File MyMail.send End Sub 
  • Pak stiskněte tlačítko F5 nebo klikněte na tlačítko Spustit spustit kód.

  • Nakonec kód odešle přílohu na zadané e-maily v kódu. Kód odešle e-maily pomocí. Outlook . Klikněte tedy na Povolit tlačítko, abyste mohli Outlook odeslat přílohu na zadané e-maily.

Přečtěte si více: Jak použít makro pro odeslání e-mailu z aplikace Excel s přílohou

Závěr

Závěrem tento článek ukazuje, že 3 příklady použití aplikace Excel VBA makro pro automatické odesílání pošty. Stáhněte si ukázkový pracovní list uvedený v tomto článku a vyzkoušejte si své dovednosti. Pokud máte jakékoli dotazy, zanechte komentář v poli níže. Náš tým se pokusí na vaši zprávu co nejdříve odpovědět. Sledujte další nápadité příklady Microsoft Excel řešení v budoucnu.

Hugh West je velmi zkušený školitel a analytik Excelu s více než 10 lety zkušeností v oboru. Má bakalářský titul v oboru Účetnictví a finance a magisterský titul v oboru Business Administration. Hugh má vášeň pro výuku a vyvinul jedinečný přístup k výuce, který lze snadno sledovat a pochopit. Jeho odborné znalosti Excelu pomohly tisícům studentů a profesionálů po celém světě zlepšit své dovednosti a vyniknout ve své kariéře. Prostřednictvím svého blogu Hugh sdílí své znalosti se světem a nabízí bezplatné výukové programy Excelu a online školení, které jednotlivcům a firmám pomohou dosáhnout jejich plného potenciálu.