Obsah
V tomto článku vám ukážeme 5 Makro na odeslat e-mail z Excel Pro demonstraci našich metod jsme vybrali datovou sadu s 3 sloupce : " Název ", " E-mail " a " Město ".
Stáhnout cvičebnici
Použití makra k odeslání e-mailu.xlsm5 způsobů použití makra pro odesílání e-mailů z aplikace Excel
1. Použití knihovny objektů aplikace Outlook k odesílání e-mailů
Pro první Makro , povolíme " Knihovna objektů aplikace Microsoft Outlook 16.0 " na odeslat . e-mail z Excel . Kromě toho se musíme přihlásit k našemu Outlook účet v Excel .
Kroky:
Na začátku si přiblížíme Visual Basic okno.
- Za prvé, z Vývojář karta>>> vybrat Visual Basic .
Případně můžete stisknout ALT + F11 zobrazit VBA okno.
- Za druhé, z Nástroje >>> vybrat " Odkazy... ".
Nový dialogové okno se objeví.
- Za třetí vyberte možnost " Knihovna objektů aplikace Microsoft Outlook 16.0 " a stiskněte tlačítko OK .
Umožníme tedy Knihovna objektů aplikace Outlook .
- je z Vložte >>> vybrat Modul .
Zde zadáme náš kód.
- Poté zadejte následující kód.
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 'Tyto položky jsou volitelné 'eItem.CC = "[email protected]" 'etem.BCC = "[email protected]" eItem.Subject = "Odeslání e-mailu pomocí VBA z Excelu" eItem.Body = "Hello," & vbNewLine &"Doufám, že vás tento e-mail zastihne v pořádku." & _ vbNewLine & vbNewLine & _ "S pozdravem," & vbNewLine & "Exceldemy" 'Pokud chcete připojit tento sešit, pak odkomentujte tyto dva řádky níže 'Source = ThisWorkbook.FullName 'eItem.Attachments.Add Source eItem.Display 'můžete použít .Send End Sub
Rozdělení kódu VBA
- Za prvé, voláme naše Dílčí postup Makro_Send_Email .
- Za druhé, prohlašujeme, že proměnná typy.
- Za třetí, vybíráme Outlook jako náš Poštovní aplikace .
- Poté vybereme naše e-mail odesílací adresa z buňka C5 .
- Poté se e-mail obsah je nastaven v našem kódu.
- A konečně, " Vlastnost zobrazení VBA " se zde používá k zobrazení našeho e-mail . Proto budeme muset stisknout Odeslat ručně na odeslat na e-maily Navíc můžeme použít " Odeslat majetek " na odesílat e-maily bez zobrazení.
- Poté, Uložit a zavřete Modul .
Nyní budeme Spustit kód.
- Za prvé, z Vývojář tab>>> vybrat Makra .
Na stránkách Dialogové okno Makro se objeví.
- Za druhé, vyberte si naši Dílčí postup " Makro_Send_Email ".
- Nakonec stiskněte Spustit .
Po spuštění kódu uvidíme. e-mail můžeme kliknout na Odeslat . Ukázali jsme vám tedy první metodu. zasílání . e-mail z excel pomocí VBA .
Přečtěte si více: Odesílání e-mailů z aplikace Excel VBA bez aplikace Outlook (4 vhodné příklady)
2. Makro pro odesílání e-mailů z účtu Gmail v aplikaci Excel
Pro tuto metodu potřebujeme méně bezpečný přístup k aplikacím z Gmail Kromě toho budeme muset povolit. Microsoft CDO z Odkazy menu.
Kroky:
- Za prvé, jak je uvedeno v první metodě , vyvolat Dialogové okno Reference .
- Za druhé vyberte možnost " Knihovna Microsoft CDO pro Windows 2000 " a stiskněte tlačítko OK .
- Za třetí, přejděte na Zabezpečení z vašeho Nastavení účtu Google .
- Nakonec zapněte Méně bezpečný přístup k aplikacím .
Nyní zadáme naše Makro kód.
- Za prvé, jak je uvedeno v metodě 1 , vyvolat Modul a zadejte tento kód.
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 pro odeslání Gmailu" cFrom = "[email protected]" cTo = "[email protected]" cBody = "Dobrý den. Toto je automatická zpráva. Prosím neodpovídejte" 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
Rozdělení kódu VBA
- Za prvé, voláme naše Dílčí postup Send_Gmail_Macro .
- Za druhé, prohlašujeme, že proměnná typy.
- Za třetí, nastavujeme e-mail obsah v našem kódu.
- Pak poskytujeme naše přihlašovací údaje . Musíte zadat vlastní ID a Heslo zde.
- Poté jsme se vydali přístav na 465 .
- Konečně jsme zasílání naše e-mail .
- Pak, Uložit a Spustit tento kód.
Úspěšně jsme odesláno . e-mail na naši adresu.
Další informace: Makro pro odesílání e-mailů z aplikace Excel s tělem (3 užitečné případy)
3. Odeslání e-mailu seznamu příjemců ze sloupce
Třetí metodou je. odesílat e-maily na 7 lidé, kteří používají Makro z Excel Najdeme poslední řádek našeho souboru dat, proto bude náš kód fungovat i pro delší seznam. odesílat e-maily z buňka C5:C10 rozsah.
Kroky:
- Za prvé, jak je uvedeno v metodě 1 , vyvolat Modul a zadejte tento kód.
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 'Zde můžete použít .Send End With Set pMail = Nothing Set pApp = Nothing End Sub
Rozdělení kódu VBA
- Za prvé, voláme naši Dílčí postup Makro_Send_Email_From_A_List .
- Za druhé, prohlašujeme, že proměnná typy.
- Za třetí, vybíráme Outlook jako náš Poštovní aplikace .
- Pak najdeme poslední řádek , což je 10 pro náš soubor dat.
- Poté, jak naše e-mail začíná od řádek 5 zadali jsme 5 jako výchozí hodnotu pro " proměnná z ". Navíc naše e-maily jsou na Sloupec C , proto jsme zadali 3 uvnitř Buňky nemovitosti.
- Pak nastavíme e-mail obsah v našem kódu.
- A konečně, " .Display " se zde používá k zobrazení našeho e-mail . Proto budeme muset stisknout Odeslat ručně na odeslat . e-maily Navíc můžeme použít " .Send " na odeslat e-mail bez zobrazení.
- Pak, Uložit a Spustit . Modul .
Vidíme, že všechny naše e-maily jsou zobrazeny v BCC . Na závěr můžeme jednoduše stisknout Odeslat k dokončení našeho úkolu.
Přečtěte si více: Jak odeslat e-mail ze seznamu aplikace Excel (2 efektivní způsoby)
Podobná čtení
- Jak automaticky odeslat e-mail při splnění podmínky v aplikaci Excel
- Jak sdílet soubor aplikace Excel online (2 snadné metody)
- Automatické odesílání e-mailových upomínek z pracovního listu aplikace Excel pomocí VBA
- Jak odeslat e-mail při splnění podmínek v aplikaci Excel (3 snadné metody)
- Jak povolit sdílení sešitu v aplikaci Excel
4. Makro pro odeslání jednoho listu pomocí e-mailu
V této části odeslat na Aktivní pracovní list na naši cílovou osobu. Zde budeme muset vybrat umístění našeho Excel soubor.
Kroky:
- Za prvé, jak je uvedeno v metodě 1 , vyvolat Modul a zadejte tento kód.
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:\Users\Rafi\OneDrive\Desktop\Softeko\47\" & fxName On Error GoTo 0 zBook.SaveAsFileName:="C:\Uživatelé\Rafi\OneDrive\Desktop\Softeko\47\" & fxName Set pApp = CreateObject("Outlook.Application") Set pMail = pApp.CreateItem(0) With pMail .To = "[email protected]" .Subject = "Makro pro odeslání jednoho listu e-mailem" .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
Rozdělení kódu VBA
- Za prvé, voláme naši Dílčí postup Makro_Email_Single_Sheet .
- Za druhé, prohlašujeme, že proměnná typy.
- Za třetí, kopírujeme Aktivní list a uložení jako samostatný Pracovní sešit .
- Poté vybíráme Outlook jako náš Poštovní aplikace .
- Pak nastavíme e-mail obsah v našem kódu.
- Poté jsme připojili List na e-mail .
- Nakonec použijte " .Display " zobrazit naše e-mail . Proto budeme muset stisknout Odeslat ručně na odeslat na e-maily Navíc můžeme použít " .Send " na odeslat e-mail bez zobrazení.
- Pak, Uložit a Spusťte . Modul .
Uvidíme List název v okně. Stiskněte Odeslat k dokončení úkolu.
Můžeme otevřít a ověřit, zda náš kód funguje.
Přečtěte si více: Jak odeslat upravitelnou tabulku aplikace Excel e-mailem (3 rychlé metody)
5. Makro pro odeslání e-mailu na základě hodnoty buňky
U poslední metody jsme trochu změnili naši datovou sadu. Přidali jsme " Platba Due " sloupec do souboru dat. Zde budeme odeslat . e-mail který obsahuje město " Obama ". Jasně vidíme, že řádek 5 obsahuje, a proto se chystáme odeslat . e-mail pouze pro tuto osobu.
Kroky:
- Za prvé, jak je uvedeno v metodě 1 , vyvolat Modul a zadejte tento kód.
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/Paní " & eName & ", Prosím, zaplaťte dlužnou částku během příštího týdne." _ & vbNewLine & "Přesná částka je přiložena k tomuto e-mailu." .Attachments.Add ActiveWorkbook.FullName 'Odeslat soubor e-mailem .Display 'Zde můžeme použít také .Send End With Set pMail = Nothing Set pApp = Nothing End Sub
Rozdělení kódu VBA
- Za prvé, voláme náš první Dílčí postup Send_Email_Condition .
- Za druhé, prohlašujeme, že Proměnná typy a nastavení " Podmínky " jako náš List .
- Za třetí, poslední řádek Navíc naše hodnota začíná od hodnoty řádek 5 , proto jsme vložili řádek 5 do posledního řádek v našem kódu.
- Pak zavolejte náš druhý Dílčí postup Send_Email_With_Multiple_Condition .
- Poté vybíráme Outlook jako náš Poštovní aplikace .
- Pak se e-mail obsah je nastaven v našem kódu.
- Zde připojujeme Excel soubor s e-mail pomocí Příloha metoda.
- Poté " .Display " se zde používá k zobrazení našeho e-mail . Proto budeme muset stisknout Odeslat ručně na odeslat . e-maily Navíc můžeme použít " .Send " na odeslat e-mail bez zobrazení.
- Pak, Uložit a Spustit . Modul .
Na závěr jsme vám ukázali další metodu, jak zasílání . e-mail pomocí Makro VBA z Excel .
Přečtěte si více: Automatické odesílání e-mailů z aplikace Excel na základě obsahu buněk (2 metody)
Praktická část
Pro každou metodu jsme přidali cvičné datové sady v sekci Excel soubor.
Závěr
Ukázali jsme vám 5 metody, které lze použít Makro na odeslat . e-mail z Excel . Děkujeme za přečtení, pokračujte v excelování!