Съдържание
В тази статия ще ви покажем 5 Macro към изпращане на имейл от Excel За да демонстрираме нашите методи, избрахме набор от данни с 3 колони : " Име ", " Имейл ", и " Град ".
Изтегляне на работна тетрадка за практика
Използване на макроси за изпращане на Email.xlsm5 начина за използване на макроси за изпращане на имейл от Excel
1. Използване на библиотеката за обекти на Outlook за изпращане на имейли
За първи път Macro , ще активираме функцията " Microsoft Outlook 16.0 Библиотека за обекти " до изпращане на на имейл от Excel . Освен това трябва да влезем в нашия Outlook сметка в Excel .
Стъпки:
В началото ще изведем Visual Basic прозорец.
- Първо, от Разработчик tab>>> изберете Visual Basic .
Като алтернатива можете да натиснете ALT + F11 за показване на VBA прозорец.
- Второ, от Инструменти >>> изберете " Препратки... ".
Нов диалогов прозорец ще се появи.
- Трето, изберете " Microsoft Outlook 16.0 Библиотека за обекти ", и натиснете ОК .
По този начин ще разрешим Библиотека за обекти на Outlook .
- Те от Вмъкване на >>> изберете Модул .
Тук ще въведем нашия код.
- След това въведете следния код.
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 'Тези елементи не са задължителни 'eItem.CC = "[email protected]" 'etem.BCC = "[email protected]" eItem.Subject = "Изпращане на имейл с помощта на VBA от Excel" eItem.Body = "Hello," & vbNewLine &"Надявам се, че този имейл ще ви намери добре." & _ vbNewLine & vbNewLine & _ "С уважение" & vbNewLine & "Exceldemy" 'Ако искате да прикачите тази работна книга, тогава разкоментирайте тези два реда отдолу 'Source = ThisWorkbook.FullName 'eItem.Attachments.Add Source eItem.Display 'може да използвате .Send End Sub
Разбивка на кода VBA
- Първо, извикваме нашия Подпроцедура Macro_Send_Email .
- Второ, обявяваме променлива видове.
- Трето, избираме Outlook като наш Заявление за поща .
- След това избираме нашия имейл адрес за изпращане от клетка C5 .
- След това имейл съдържанието е зададено в нашия код.
- И накрая, " Свойство за показване на VBA " се използва тук, за да се покаже нашата имейл . Затова ще трябва да натиснете Изпрати ръчно към изпращане на на имейли . Освен това можем да използваме " Изпращане на имот " до изпращане на имейли без показване.
- След това, Запазете и затворете Модул .
Сега ще Изпълнявайте кода.
- Първо, от Разработчик tab>>> изберете Макроси .
Сайтът Диалогов прозорец Макрос ще се появи.
- Второ, изберете нашия Подпроцедура " Macro_Send_Email ".
- Накрая натиснете Изпълнявайте .
След като изпълним кода, ще видим имейл можем да щракнем върху Изпрати . Така ви показахме първия метод на изпращане на на имейл от Excel използване на VBA .
Прочетете още: Изпращане на имейл от Excel VBA без Outlook (4 подходящи примера)
2. Макрос за изпращане на имейл от акаунт в Gmail в Excel
За този метод е необходимо по-малко сигурен достъп до приложения от Gmail Освен това ще трябва да активираме Microsoft CDO от Препратки меню.
Стъпки:
- На първо място, както е показано в първия метод , изведете Диалогов прозорец Препратки .
- Второ, изберете " Библиотека Microsoft CDO за Windows 2000 " и натиснете OK .
- Трето, отидете в Защита от вашия Настройки на профила в Google .
- Накрая включете По-малко сигурен достъп до приложения .
Сега ще въведем нашия Macro код.
- На първо място, както е показано в метод 1 , изведете Модул и въведете този код.
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 = "Макрос за изпращане на Gmail" cFrom = "[email protected]" cTo = "[email protected]" cBody = "Здравейте. Това е автоматизирано съобщение. Моля, не отговаряйте" 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
Разбивка на кода VBA
- Първо, извикваме нашия Подпроцедура Изпрати_Gmail_Macro .
- Второ, обявяваме променлива видове.
- Трето, определяме имейл съдържание в нашия код.
- След това предоставяме нашите идентификационни данни за вход . Трябва да въведете свой собствен ID и Парола тук.
- След това се заехме с пристанище към 465 .
- И накрая, ние сме изпращане на нашия имейл .
- След това, Запазете и Изпълнявайте този код.
Ние успешно изпратен на имейл на нашия адрес.
Прочетете още: Макрос за изпращане на имейл от Excel с тяло (3 полезни случая)
3. Изпращане на имейл до списък с получатели от колона
За третия метод ще използваме изпращане на имейли към 7 хора, които използват Macro от Excel . Ще намерим последния ред на нашата съвкупност от данни, следователно нашият код ще работи и за по-дълъг списък. изпращане на имейли от клетка C5:C10 обхват.
Стъпки:
- На първо място, както е показано в метод 1 , изведете Модул и въведете този код.
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 'Можете да използвате .Send тук End With Set pMail = Nothing Set pApp = Nothing End Sub
Разбивка на кода VBA
- Първо, извикваме нашия Подпроцедура Macro_Send_Email_From_A_List .
- Второ, обявяваме променлива видове.
- Трето, избираме Outlook като наш Заявление за поща .
- След това намираме последен ред , което е 10 за нашия набор от данни.
- След това, като нашите имейл започва от ред 5 Въведохме 5 като начална стойност за " променлива z ". Освен това нашите имейли са на Колона C , поради което въведохме 3 вътре в Клетки собственост.
- След това задаваме имейл съдържание в нашия код.
- И накрая, " .Display " се използва тук, за да се покаже нашата имейл . Затова ще трябва да натиснете Изпрати ръчно към изпращане на на имейли . Освен това можем да използваме " .Send " към изпращане на имейл без показване.
- След това, Запазете и Изпълнявайте на Модул .
Можем да видим, че всички наши имейли се показват в BCC . В заключение можем просто да натиснем Изпрати за да изпълним задачата си.
Прочетете още: Как да изпращате имейли от списък на Excel (2 ефективни начина)
Подобни четива
- Как да изпратите имейл автоматично, когато условието е изпълнено в Excel
- Как да споделяте файл на Excel онлайн (2 лесни метода)
- Автоматично изпращане на имейл с напомняне от работен лист на Excel с помощта на VBA
- Как да изпратите имейл, ако условията са изпълнени в Excel (3 лесни метода)
- Как да разрешите споделянето на работна книга в Excel
4. Макрос за изпращане на единичен лист чрез имейл
В този раздел ще изпращане на на Активен работен лист до целевото ни лице. Тук трябва да изберем местоположението на нашата Excel файл.
Стъпки:
- На първо място, както е показано в метод 1 , изведете Модул и въведете този код.
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:\Users\Rafi\OneDrive\Desktop\Softeko\47\" & 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
Разбивка на кода VBA
- Първо, извикваме нашия Подпроцедура Macro_Email_Single_Sheet .
- Второ, обявяваме променлива видове.
- Трето, копираме Активен лист и запазването му като отделен Работна тетрадка .
- След това избираме Outlook като наш Заявление за поща .
- След това задаваме имейл съдържание в нашия код.
- След това прикачихме Лист към имейл .
- Накрая използвайте " .Display ", за да покажете нашия имейл . Затова ще трябва да натиснете Изпрати ръчно към изпращане на на имейли . Освен това можем да използваме " .Send " до изпращане на имейл без показване.
- След това, Запазете и Изпълнявайте на Модул .
Ще видим Лист име в прозореца. Натиснете Изпрати за изпълнение на задачата.
Можем да отворен файла и проверете дали нашият код работи.
Прочетете още: Как да изпратите редактируема електронна таблица на Excel по имейл (3 бързи метода)
5. Макрос за изпращане на имейл въз основа на стойността на клетката
За последния метод променихме малко набора от данни. Добавихме " Плащане Задължение " колона към набора от данни. Тук ще изпращане на на имейл който съдържа град " Обама ". Можем ясно да видим, че ред 5 го съдържа, следователно ние ще изпращане на на имейл само за това лице.
Стъпки:
- На първо място, както е показано в метод 1 , изведете Модул и въведете този код.
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) Извикайте Send_Email_With_Multiple_Condition(mAddress, mSubject, eName) End If Next x End With End 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 ="Г-н/Г-жа " & eName & ", Моля, платете дължимата сума в рамките на следващата седмица." _ & vbNewLine & "Точната сума е прикачена към този имейл." .Attachments.Add ActiveWorkbook.FullName 'Изпращане на файла по имейл .Display 'Можем да използваме .Send и тук End With Set pMail = Nothing Set pApp = Nothing End Sub
Разбивка на кода VBA
- Първо, наричаме първия си Подпроцедура Send_Email_Condition .
- Второ, обявяваме Променлива типове и настройки " Условия " като наш Лист .
- Трето, последният ред Освен това нашата стойност започва от ред 5 , поради което поставихме ред 5 до последния ред в нашия код.
- След това извикайте втория ни Подпроцедура Send_Email_With_Multiple_Condition .
- След това избираме Outlook като наш Заявление за поща .
- След това имейл съдържанието е зададено в нашия код.
- Тук прикачваме Excel файл с имейл като използвате Приложение метод.
- След това " .Display " се използва тук, за да се покаже нашата имейл . Затова ще трябва да натиснете Изпрати ръчно към изпращане на на имейли . Освен това можем да използваме " .Send " до изпращане на имейл без показване.
- След това, Запазете и Изпълнявайте на Модул .
В заключение, показахме ви още един метод за изпращане на на имейл използване на Макрос на VBA от Excel .
Прочетете още: Автоматично изпращане на имейли от Excel въз основа на съдържанието на клетките (2 метода)
Практически раздел
Добавихме набори от данни за упражнения за всеки метод в Excel файл.
Заключение
Показахме ви 5 методи за използване Macro към изпращане на на имейл от Excel . Благодаря за четенето, продължавайте да постигате успехи!