要从Microsoft Excel发送电子邮件,只需几个简单的脚本。将此功能添加到电子表格中,您就可以真正增强在Excel中可以完成的工作量。
我们介绍了许多出色的Excel宏,它们可以完成VBA脚本可以完成的工作,但是没有需要编程知识。但是,您只能使用VBA进行许多高级操作,例如使用所有PC信息创建电子表格报告。
更喜欢将本教程作为视频观看吗?
为什么要从Excel发送电子邮件?
您可能要从Microsoft Excel内部发送电子邮件的原因有很多。
也许您有工作人员每周更新一次文档或电子表格,并且您希望收到有关这些更新何时完成的电子邮件通知。或者您可能有一个联系人电子表格,并且想要一次向所有联系人发送一封电子邮件。
您可能会认为编写从Excel广播的电子邮件的脚本会变得很复杂。完全不是这种情况。
本文中的技术将利用长期以来在Excel VBA中可用的功能 Collaboration Data Objects (CDO)。
CDO是Windows早期的操作系统中使用的消息传递组件。它以前被称为CDONTS,然后随着Windows 2000和XP的出现,被“ Windows 2000的CDO"所取代。该组件已经包含在Microsoft Word或Excel的VBA安装中,并且可以使用。
使用该组件可以非常轻松地从Windows产品中使用VBA发送电子邮件。在此示例中,您将使用Excel中的CDO组件发送一封电子邮件,该电子邮件将传递来自特定Excel单元的结果。
步骤1:创建VBA宏
第一步是转到“ Excel开发人员"选项卡。
在“开发人员"选项卡中,单击“控件"框中的插入,然后选择一个命令按钮。
将其绘制到工作表中,然后通过单击开发人员功能区中的宏为其创建一个新的宏。
单击创建按钮,它将打开VBA编辑器。
通过在编辑器中导航至工具>参考,将引用添加到CDO库。
向下滚动列表,直到找到用于Windows 2000库的Microsoft CDO 。选中该复选框,然后单击确定。
单击确定时,请记下粘贴脚本的函数的名称。
步骤2:设置CDO“发件人"和“收件人"字段
为此,首先需要创建邮件对象并设置
请记住,尽管许多字段都是可选的,但发件人和发件人
Dim CDO_Mail As ObjectDim CDO_Config As ObjectDim SMTP_Config As VariantDim strSubject As StringDim strFrom As StringDim strTo As StringDim strCc As StringDim strBcc As StringDim strBody As StringstrSubject = "Results from Excel Spreadsheet"strFrom = "[email protected]"strTo = "[email protected]"strCc = ""strBcc = ""strBody = "The total results for this quarter are: " & Str(Sheet1.Cells(2, 1))
很酷的事情是,您可以创建任何您想要自定义完整电子邮件的字符串,并将其分配给 strBody 变量。
使用&字符串将消息的各个部分拼凑在一起,将Microsoft Excel工作表中的数据直接插入到电子邮件中,就像上面显示的那样。
Step 3: Configure CDO to Use an External SMTP
The next section of code is where you will configure CDO to use any external SMTP server to send the email.
此示例是通过Gmail进行的非SSL设置。 CDO可以使用SSL,但这不在本文讨论范围之内。如果您需要使用SSL,则Github中的高级代码可以提供帮助。
不会出现任何弹出框或安全警报消息,当您诉诸使用Outlook邮件对象时会发生这种情况。
CDO只是将电子邮件放在一起并利用SMTP服务器连接触发消息的详细信息。这是将电子邮件合并到Microsoft Word或Excel VBA脚本中的最简单方法。
要将命令按钮连接到此脚本,请进入代码编辑器,然后单击 Sheet1 查看该工作表的VBA代码。
键入上面粘贴脚本的函数的名称。
这是我在收件箱中收到的消息:
注意:如果您收到以下错误消息:传输无法连接到服务器,请确保您输入了正确的用户名,密码,SMTP服务器,以及使用SMTP_Config 下面列出的代码行中的端口号。
更进一步并实现整个过程自动化
只需按一下按钮就可以从Excel发送电子邮件。但是,您可能希望定期使用此功能,在这种情况下,使流程自动化是很有意义的。
为此,您需要对宏进行更改。转到Visual Basic编辑器,然后复制并粘贴我们编写的整个代码。
下一步,从 Project 层次结构中选择 ThisWorkbook 。<
从代码窗口顶部的两个下拉字段中,选择工作簿,然后从“方法"下拉列表中选择打开。
将上面的电子邮件脚本粘贴到 Private Sub Workbook_Open()。
这将在您打开Excel文件时运行该宏。
下一步,打开任务计划程序。
您将使用此工具要求Windows定期自动打开电子表格,届时您的宏将被启动,并发送
从操作菜单中选择创建基本任务…,并逐步完成向导,直到您达到操作屏幕。
选择启动程序,然后单击下一步。
使用浏览按钮在计算机上查找Microsoft Excel的位置,或将路径复制并粘贴到 Program / script中字段。
然后,在添加参数字段中输入Microsoft Excel文档的路径。
完成向导和计划
值得进行一次测试,方法是将操作安排在未来的几分钟内,然后在确认任务正常后对其进行修改。
< strong>注意:您可能需要调整“信任中心"设置以确保宏正常运行。
为此,请打开电子表格并导航到文件 >选项>信任中心。
从此处,单击信任中心设置,然后在下一个屏幕上设置广播拨打从不显示有关被阻止内容的信息。
制作Micros Excel经常为您服务
Microsoft Excel是一个功能非常强大的工具,但是学习如何充分利用它可能会有些令人生畏。如果您想真正掌握该软件,则需要对VBA感到满意,这并非易事。
然而,结果不言而喻。有了一点VBA经验,您很快就能使Microsoft Excel自动执行基本任务,从而使您有更多的时间专注于更紧迫的事务。
花时间建立VBA的专业知识,但如果坚持下去,您很快就会发现自己的工作成果。
一个很好的起点是我们关于在Excel中使用VBA的权威教程。完成此操作后,这个简单的脚本即可从Excel发送电子邮件,就像玩耍的孩子一样。
标签: 电子邮件提示 Microsoft Excel Microsoft Office提示 编程 Visual Basic编程