以下是一个完整的Excel VBA自动化邮件发送教程,帮助你在Excel中实现自动发送邮件的功能:
准备工作
安装并配置Outlook
确保你的电脑上安装了Microsoft Outlook,并且已经配置好了邮件账户。
启用开发者工具
在Excel中,点击“文件”->“选项”->“自定义功能区”,勾选“开发者”选项卡。
编写VBA代码
打开VBA编辑器
按下 Alt + F11 打开VBA编辑器。
插入模块
在VBA编辑器中,右键点击VBAProject(工作簿名称),选择“插入”->“模块”。
编写代码
在模块中输入以下代码,用于发送邮件:
Sub SendEmail() Dim OutlookApp As Object Dim OutlookMail As Object
创建Outlook应用程序实例
Set OutlookApp = CreateObject("Outlook.Application")
创建邮件对象
Set OutlookMail = OutlookApp.CreateItem(0)
设置邮件属性
With OutlookMail .To = "recipient@example.com" 收件人地址 .Subject = "邮件主题" 邮件主题 .Body = "这是邮件正文内容" 邮件正文 .Send 发送邮件 End With
清理对象
Set OutlookMail = Nothing Set OutlookApp = NothingEnd Sub
运行代码
在VBA编辑器中,按下 F5 或点击“运行”菜单,选择“运行子程序/用户定义的函数”,然后选择 SendEmail。
高级功能
根据Excel数据发送邮件
如果需要根据Excel表格中的数据发送邮件,可以编写更复杂的代码。例如,以下代码会遍历工作表中的每一行,并根据指定的收件人、主题和正文发送邮件:
Sub SendEmails() Dim ws As Worksheet Dim lastRow As Long Dim i As Long Set ws = ThisWorkbook.Sheets(1) 修改为实际的工作表名称 lastRow = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row 假设收件人地址在A列
For i = 2 To lastRow 从第二行开始,假设第一行是标题
Call SendEmail(ws.Cells(i, "A").Value, ws.Cells(i, "B").Value, ws.Cells(i, "C").Value) Next iEnd Sub
Sub SendEmail(to As String, subject As String, body As String) Dim OutlookApp As Object Dim OutlookMail As Object Set OutlookApp = CreateObject("Outlook.Application") Set OutlookMail = OutlookApp.CreateItem(0) With OutlookMail .To = to .Subject = subject .Body = body .Send End With Set OutlookMail = Nothing Set OutlookApp = NothingEnd Sub
添加附件
如果需要在邮件中添加附件,可以在代码中使用 .Attachments.Add 方法:
设置抄送和密送
如果需要设置抄送(CC)或密送(BCC),可以使用以下代码:
注意事项
确保Outlook正在运行,并且邮件账户配置正确。
如果你的公司网络有防火墙限制,可能需要额外的设置来允许Outlook发送邮件。
在运行宏之前,务必检查所有信息是否正确,以避免发送错误的邮件。
通过以上步骤,你可以在Excel中实现自动发送邮件的功能,从而节省时间并提高工作效率。
领取专属 10元无门槛券
私享最新 技术干货