从Excel中发送电子邮件的宏(5个合适的例子)。

  • Share This
Hugh West

在这篇文章中,我们将向你展示 5 宏观 发送电子邮件 ǞǞǞ 为了证明我们的方法,我们选择了一个具有以下特征的数据集。 3列 : " 命名 ", " 电子邮件 ",以及" 城市 ".

下载实践工作手册

使用宏来发送电子邮件.xlsm

使用宏程序从Excel发送电子邮件的5种方法

1.使用Outlook对象库来发送电子邮件

对于第一个 宏观 ,我们将启用" Microsoft Outlook 16.0对象库 "到 发送 一个 电子邮件 ǞǞǞ 此外,我们需要登录到我们的 展望 帐户在 ǞǞǞ .

步骤。

在开始时,我们要把 视觉基础 窗口。

  • 首先,从 开发商 标签>>> 选择 视觉基础 .

或者,你可以按 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 = "你好," & vbNewLine &。"希望这封邮件能给你带来好处。" & _ vbNewLine & vbNewLine & _ "真诚的," & vbNewLine & "Exceldemy" '如果你想附加这个工作簿,那么就取消下面这两行的注释 'Source = ThisWorkbook.FullName ' eItem.Attachments.Add Source eItem.Display '可以使用.Send End Sub 

VBA代码分解

  • 首先,我们把我们的 子程序 Macro_Send_Email .
  • 第二,我们正在宣布 变量 类型。
  • 第三,我们正在选择 展望 作为我们的 邮件申请 .
  • 然后,我们在选择我们的 电子邮件 发送地址来自 细胞C5 .
  • 在这之后, 电子邮件 内容是在我们的代码中设置的。
  • 最后," VBA显示属性 "在这里用来显示我们的 电子邮件 因此,我们需要按 发送 人工操作到 发送 电子邮件 此外,我们可以用" 发送财产 "到 发送电子邮件 不显示。
  • 在这之后。 拯救 并关闭 模块 .

现在,我们将 运行 的代码。

  • 首先,从 开发商 标签>>> 选择 巨集 .

ǞǞǞ 宏程序对话框 将会出现。

  • 第二,选择我们的 子程序 " Macro_Send_Email ".
  • 最后,按 运行 .

执行该代码后,我们会看到 电子邮件 窗口。 我们可以点击 发送 因此,我们已经向你展示了第一种方法,即 发送 一个 电子邮件 优秀 使用 VBA .

阅读更多。 在没有Outlook的情况下从Excel VBA中发送电子邮件(4个合适的例子)。

2.在Excel中从Gmail账户发送邮件的宏程序

对于这种方法,我们需要 不太安全的应用程序访问 Gmail 此外,我们还需要启用 微软CDO 参考文献 菜单。

步骤。

  • 首先。 如第一种方法所示 ,调出 参考资料 "对话框 .
  • 其次,选择" 用于Windows 2000的微软CDO库 ",并按 认可 .

  • 第三,去 安全问题 从你的 谷歌账户设置 .
  • 最后,打开 不太安全的应用程序访问 .

现在,我们将输入我们的 宏观 代码。

  • 首先。 如方法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 = "Macro to Send Gmail" cFrom = "[email protected]" cTo = "[email protected]" cBody = "你好,这是一个自动信息,请不要回复" Set cMail =CreateObject("CDO.Message") On Error GoTo Error_Handling Set cConfig = CreateObject("CDO.Config") 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/smtppserverport") = 465 .Item("//schemas.microsoft.com/cdo/configuration/smtpusessl" ) = True .Update End With 随着cMail设置 .配置 = cConfig End With cMail.主题 =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 .
  • 第二,我们正在宣布 变量 类型。
  • 第三,我们正在设置 电子邮件 我们的代码中的内容。
  • 然后,我们在提供我们的 登录凭证 你需要打出你自己的 身份证 密码 这里。
  • 在这之后,我们已经开始着手 港口 465 .
  • 最后,我们 发送 我们的 电子邮件 .
  • 然后。 拯救 运行 这个代码。

我们已经成功地 发送 一个 电子邮件 到我们的地址。

阅读更多:从Excel发送带正文的邮件的宏(3个实用案例)

3.从列中向收件人名单发送电子邮件

对于第三种方法,我们要做的是 发送电子邮件 7 使用的人 宏观 ǞǞǞ 我们会找到最后的 因此,我们的代码将适用于更长的列表。 我们将 发送电子邮件 细胞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 'You can use .Send here End With Set pMail = Nothing Set pApp = Nothing End Sub 

VBA代码分解

  • 首先,我们把我们的 子程序 Macro_Send_Email_From_A_List .
  • 第二,我们正在宣布 变量 类型。
  • 第三,我们正在选择 展望 作为我们的 邮件申请 .
  • 然后,我们要找到 最后一行 ,这就是 10 为我们的数据集。
  • 此后,由于我们的 电子邮件 始于 第5行 我们已经输入 5 作为""的起始值。 变量Z "此外,我们的 电子邮件 是在 C列 ,因此我们输入了 3 里面的 细胞 财产。
  • 然后,我们在设置 电子邮件 我们的代码中的内容。
  • 最后," .显示 "在这里用来显示我们的 电子邮件 因此,我们需要按 发送 人工操作到 发送 电子邮件 此外,我们可以用" .发送 "到 发送电子邮件 不显示。
  • 然后。 拯救 运行 模块 .

我们可以看到,我们所有的 电子邮件 显示在 BCC 总而言之,我们可以简单地按 发送 来完成我们的任务。

阅读更多。 如何从Excel列表中发送邮件(2种有效方法)

类似读物

  • 如何在Excel中满足条件时自动发送电子邮件
  • 如何在线分享Excel文件(2种简单方法)
  • 使用VBA从Excel工作表中自动发送提醒邮件
  • 如何在Excel中满足条件时发送电子邮件(3种简单方法)
  • 如何在Excel中启用共享工作簿

4.使用电子邮件发送单页的宏程序

在本节中,我们将 发送 活动工作表 在这里,我们需要选择我们的目标人物的位置。 ǞǞǞ 文件。

步骤。

  • 首先。 如方法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 .
  • 第二,我们正在宣布 变量 类型。
  • 第三,我们正在复制 活跃表 并将其作为一个单独的 工作手册 .
  • 之后,我们要选择 展望 作为我们的 邮件申请 .
  • 然后,我们在设置 电子邮件 我们的代码中的内容。
  • 之后,我们把 钣金 电子邮件 .
  • 最后,使用" .显示 "来显示我们的 电子邮件 因此,我们需要按 发送 人工操作到 发送 电子邮件 此外,我们可以用" .发送 "到 发送电子邮件 不显示。
  • 然后。 拯救 运行 模块 .

我们将看到 钣金 窗口中的名称。 按 发送 来完成这个任务。

我们可以 开放 文件,并验证我们的代码是否工作。

阅读更多。 如何通过电子邮件发送可编辑的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.Sheet("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 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 ="Mr./Mrs. " & eName & ", Please pay the due amount within the next week." _ & vbNewLine & "The exact amount is attached with this email." .Attachments.Add ActiveWorkbook.FullName 'Send The File via Email .Display' We can use .Send here too End With Set pMail = Nothing Set pApp = Nothing End Sub 

VBA代码分解

  • 首先,我们正在调用我们的第一个 子程序 发送_电子邮件_条件 .
  • 第二,我们正在宣布 变化的 类型和设置" 条件 "作为我们的 钣金 .
  • 第三,最后 此外,我们的数值从 第5行 ,因此我们把 第5行 到最后 在我们的代码中。
  • 然后,调用我们的第二个 子程序 发送_电子邮件_有多个条件的电子邮件 .
  • 之后,我们要选择 展望 作为我们的 邮件申请 .
  • 然后,在 电子邮件 内容是在我们的代码中设置的。
  • 在这里,我们要把 ǞǞǞ 文件与 电子邮件 使用 附件 方法。
  • 此后," .显示 "在这里用来显示我们的 电子邮件 因此,我们需要按 发送 人工操作到 发送 电子邮件 此外,我们可以用" .发送 "到 发送电子邮件 不显示。
  • 然后。 拯救 运行 模块 .

最后,我们已经向你展示了另一种方法 发送 一个 电子邮件 使用 VBA宏程序 ǞǞǞ .

阅读更多。 根据单元格内容从Excel中自动发送邮件(2种方法)

练习部分

我们已经为每个方法添加了实践数据集,在 ǞǞǞ 文件。

总结

我们已经向你展示了 5 使用的方法 宏观 发送 一个 电子邮件 ǞǞǞ 谢谢你的阅读,请继续努力。

Hugh West is a highly experienced Excel trainer and analyst with over 10 years of experience in the industry. He holds a Bachelor's degree in Accounting and Finance and a Master's degree in Business Administration. Hugh has a passion for teaching and has developed a unique teaching approach that is easy to follow and understand. His expert knowledge of Excel has helped thousands of students and professionals worldwide improve their skills and excel in their careers. Through his blog, Hugh shares his knowledge with the world, offering free Excel tutorials and online training to help individuals and businesses reach their full potential.