Excel批量自动发送带附件的邮件

实际工作中经常会遇到批量发邮件的需求,比如发送工资条、节日祝福、定期汇报工作成果、日报、周报、月报等,当然如果发送的邮件不是很多的话完全可以手工发送,一旦遇到批量发送的场景,手工一份一份的发送就会变得机械而重复劳动了。今天分享一个excel调用电脑OutLook批量发送邮件的技巧,小伙伴们可以,先收藏,等要用到的时候可以有备无患,从容应对,别人加班的时候你还可以准点下班,那岂不是很乐哉!

一、先看看我们需要实现的效果。

Excel批量自动发送带附件的邮件

发邮件跟写公式一样简单^-^

二、怎样才可以实现?

原理:通过VBA定义一个发邮件的函数,达到批量发送邮件时跟普通公式的用法一样简单的效果。

上面的效果图中我们定义了一个sendmAIl的函数,如果你现在打开你的excel找这个函数是找不到的,因为这个并不是office的内置函数,但微软office产品都安装了一个神技能 “宏”,表亲们应该都听过这个,这次咱先不去追究这到底是什么东西,先看如何实现。

具体步骤:

  1. 新建一个空白的excel文件。

  2. 打开excel文件,按快捷键ALT+F11进入VBE界面。

  3. 点击左边的工程窗口,点击鼠标右键,新建一个模块。

  4. 把代码贴入到模块中。

  5. 回到Excel界面,开始验证发邮件函数。

  6. 上面文字没看懂的请看下面的演示。

Excel批量自动发送带附件的邮件

Excel批量自动发送带附件的邮件

三、发邮件的VBA代码。

感兴趣的童鞋们可以复制以下代码按上面的操作试一试。

'发送邮件函数 sendto收件人多个用英文分号链接 subj邮件主题 mbody邮件正文 filepath附件路径
Public Function sendmAIl(sendto As String, subj As String, mbody As String, filepath As String)
 On Error Resume Next
 Dim oLapp As Object
 Dim oITem As Object
 Set oLapp = CreateObject("Outlook.application")
 Set oITem = oLapp.createitem(0)
 With oItem
 .Subject = subj
 .To = sendto
 .htmlbody = mbody
 '加上这一句就可以添加附件
 .Attachments.Add filepath
 .Send
 '判断是否发送成功
 If Err.Number = 0 Then
 sendmail = "发送成功"
 Else
 '如果发送失败则返回失败原因
 sendmail = "发送失败:" & Err.Description
 End If
 End With
 Set oLapp = Nothing
 Set oItem = Nothing
End Function

四、保存我们定义的邮件函数。

  1. 如果你的Excel是2007及以上版本的,保存的时候会出现如下提示。

  2. 保存时请选择启用宏的工作簿即可。

Excel批量自动发送带附件的邮件

Excel批量自动发送带附件的邮件

补充说明:

2007版本及以上的Excel为了保证安全性,强制了含VBA代码的专用文件格,常用存为xlsm格式。

2003版本的Excel,后缀是xls的Excel文件可以直接存储VBA代码,不需要另存为其他格式。

如有疑问欢迎小伙伴们点关注,共同探讨学习。

Excel批量自动发送带附件的邮件