Makro programu Excel na automatické odosielanie e-mailov (3 vhodné príklady)

  • Zdieľajte To
Hugh West

V tomto návode si ukážeme, ako použiť makro programu Excel na automatické odosielanie e-mailov. Funkciu odosielania môžeme nakonfigurovať pomocou VBA makrá. Takže pomocou VBA makro môžeme poslať e-mail viacerým používateľom súčasne. Musíme mať Outlook nainštalovaný v našom zariadení na automatické odosielanie e-mailov pomocou makra. Pretože kód, ktorý vložíme, bude používať Outlook na odosielanie e-mailov príjemcom.

Stiahnite si cvičebnicu

Cvičebnicu si môžete stiahnuť tu.

Automatické odosielanie e-mailov.xlsm

3 vhodné príklady makra programu Excel na automatické odosielanie e-mailov

V tomto článku si ukážeme. 3 vhodné príklady použitia excelovského makra na automatické odoslanie e-mailu príjemcom. Skôr ako začneme ilustrovať príklad, musíme v našom excelovskom hárku niečo opraviť. Pred použitím makra na automatické odoslanie e-mailu dokončite nižšie uvedené kroky.

KROKY:

  • Najprv z vášho súboru údajov prejdite na karta Vývojár . Vyberte možnosť Visual Basic .

  • Potom prejdite na Nástroj a vyberte možnosť Odkazy .

  • Zobrazí sa nové dialógové okno s názvom Referencie - VBAProject ' sa otvorí.
  • Nakoniec začiarknite možnosť Knižnica objektov Microsoft Office 16.0 ' a kliknite na OK .

1. Aplikujte makro Excel VBA na automatické odoslanie e-mailu na základe hodnoty bunky

V prvom rade použijeme program Excel VBA makro na automatické odoslanie e-mailu na základe konkrétnej hodnoty bunky v našom súbore údajov. Na ilustráciu tohto príkladu použijeme nasledujúci súbor údajov. Napíšeme kód, ktorý automaticky odošle e-mail, ak hodnota bunky v bunke D6 je väčšia ako 400 .

Pozrime sa na kroky na vykonanie tejto akcie.

KROKY:

  • Na začiatok, vpravo - kliknite na na hárku Na základe buniek '.
  • Okrem toho vyberte možnosť Zobraziť kód '.

  • Vyššie uvedená akcia otvorí prázdny VBA Ďalším spôsobom, ako otvoriť okno kódu pre daný pracovný hárok, je stlačiť Alt + F11 .
  • Ďalej do tohto okna kódu zadajte nasledujúci 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 
  • Potom kliknite na Spustiť alebo stlačte tlačidlo F5 spustiť kód.

  • Nové dialógové okno s názvom Makrá sa objaví.
  • Potom v Názov makra vyberte makro ' send_mail_outlook '.
  • Teraz kliknite na Spustiť tlačidlo.

  • Nakoniec, odteraz, keď hodnota v bunke D6> 400 e-mail v Outlook sa vygeneruje automaticky s konkrétnymi príjemcami. Musíme len kliknúť na Odoslať odoslať e-mail.

Prečítajte si viac: Automatické odosielanie e-mailov z programu Excel na základe obsahu buniek (2 metódy)

2. Automatické odosielanie e-mailov na základe dátumu splatnosti pomocou makra VBA

V druhej metóde použijeme aplikáciu Excel VBA makro na automatické odoslanie e-mailu, ak sa blíži dátum splatnosti niektorého projektu. Ide o niečo ako pripomienku. Na ilustráciu tohto príkladu použijeme nasledujúci súbor údajov. Súbor údajov obsahuje e-maily rôznych predajcov, správy a dátum splatnosti ich projektu.

Pri vykonávaní tejto metódy postupujte podľa nasledujúcich krokov.

KROKY:

  • Najprv kliknite pravým tlačidlom myši na hárok Dátum .
  • Ďalej vyberte možnosť Zobraziť kód '.

  • Otvorí sa prázdne VBA okno kódu pre aktívny pracovný hárok. Môžeme tiež stlačiť Alt + F11 na získanie tohto okna s kódom.
  • Potom do tohto okna kódu vložte nasledujúci 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

  • Teraz použite Spustiť alebo tlačidlo F5 spustiť kód.

  • Zobrazí sa nové dialógové okno.
  • Potom vo vstupnom poli tohto dialógového okna vyberte rozsah stĺpca dátumu splatnosti D$5:$D$9 Potom kliknite na OK .

  • Zobrazí sa ešte jedno dialógové okno.
  • Ďalej vo vstupnom poli vyberte rozsah stĺpcov B$5:$B$9 ktorý obsahuje e-mailové adresy a kliknite na OK .

  • Okrem toho sa zobrazí ešte jedno okno. Vyberte rozsah správ $C$5:$C$9 do vstupného poľa vyskakovacieho okna.

  • Nakoniec môžeme vidieť výsledky ako na nasledujúcom obrázku. Dostaneme 3 e-maily, ktoré sa automaticky vytvárajú v 3 rôzne okná Outlook . Tým sa nevytvorí pošta pre prvé dve e-mailové adresy. Pretože dátum splatnosti týchto dvoch projektov už uplynul.

Prečítajte si viac: Ako automaticky odoslať e-mail z programu Excel na základe dátumu

Podobné čítania

  • [Vyriešené]: Zdieľaný zošit sa nezobrazuje v programe Excel (s jednoduchými krokmi)
  • Ako odoslať e-mail zo zoznamu aplikácie Excel (2 efektívne spôsoby)
  • Ako poslať upraviteľný tabuľkový procesor Excel e-mailom (3 rýchle metódy)
  • Makro na odosielanie e-mailov z programu Excel (5 vhodných príkladov)
  • Makro na odoslanie e-mailu z programu Excel s telom (3 užitočné prípady)

3. Použitie makra programu Excel na automatické odosielanie e-mailov s prílohami

V poslednom príklade si ukážeme, ako môžeme vytvoriť makro programu Excel na automatické odosielanie e-mailu s prílohami. Predpokladajme, že máme prílohu na nasledujúcom obrázku. Túto prílohu chceme odoslať prostredníctvom e-mailu pomocou programu Excel VBA Na to potrebujeme cestu k tomuto súboru Excel. Tu je postup:

  • Vyberte súbor Attachment.xlsx ' '.
  • Kliknite na možnosť Kopírovať cestu '.

  • Takže cesta k súboru, ktorý dostaneme:
E:\Exceldemy\Attachment.xlsx

Túto cestu vložíme do nášho makrokódu na odoslanie tohto súboru e-mailom. Postupujte podľa nižšie uvedených krokov.

KROKY:

  • Najprv prejdite na Vývojár a vyberte možnosť Visual Basic .

  • Zobrazí sa nové okno s názvom Projekt - otvorí sa VBAProject '.
  • Po druhé, kliknutie pravým tlačidlom myši na na názov hárku.
  • Potom vyberte Vložte > Modul .

  • Vyššie uvedený príkaz otvorí prázdny VBA
  • Po tretie, do tohto modulu zadajte nasledujúci 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 = "Odosielanie e-mailu pomocou VBA." MyMail.Body = "Toto je vzorový mail." Attached_File = "E:\Exceldemy\Attachment.xlsx"MyMail.Attachments.Add Attached_File MyMail.send End Sub 
  • Potom stlačte tlačidlo F5 alebo kliknite na tlačidlo Spustiť spustiť kód.

  • Nakoniec kód odošle prílohu na zadané e-maily v kóde. Kód odošle e-maily pomocou Outlook . Takže kliknite na Povoľte tlačidlo, aby ste mohli Outlook odoslať prílohu na zadané e-maily.

Prečítajte si viac: Ako použiť makro na odoslanie e-mailu z aplikácie Excel s prílohou

Záver

Na záver tento článok ukazuje. 3 príklady používania programu Excel VBA makro na automatické odosielanie pošty. Stiahnite si vzorový pracovný list uvedený v tomto článku a vyskúšajte si svoje zručnosti. Ak máte akékoľvek otázky, zanechajte komentár v poli nižšie. Náš tím sa pokúsi odpovedať na vašu správu čo najskôr. Sledujte ďalšie vynaliezavé Microsoft Excel riešenia v budúcnosti.

Hugh West je veľmi skúsený tréner a analytik Excelu s viac ako 10-ročnými skúsenosťami v tomto odvetví. Má bakalársky titul v odbore účtovníctvo a financie a magisterský titul v odbore Business Administration. Hugh má vášeň pre vyučovanie a vyvinul jedinečný vyučovací prístup, ktorý sa dá ľahko sledovať a pochopiť. Jeho odborné znalosti Excelu pomohli tisíckam študentov a profesionálov na celom svete zlepšiť svoje zručnosti a vyniknúť vo svojej kariére. Hugh sa prostredníctvom svojho blogu delí o svoje znalosti so svetom a ponúka bezplatné výukové programy Excelu a online školenia, ktoré jednotlivcom a firmám pomôžu naplno využiť ich potenciál.