应张老师的需求,修改制作了一个可以批量发送带附件的电子邮件VBA。
目的:给N多人发送电子邮件,而不是抄送模式,并带有对方的称谓。
实现:
用到Word的邮件合并功能,以及调用Outlook发送邮件。不过VBA我不太懂,只能用现有的改,有点繁琐。
步骤:
1.
Word建立一个表,第一列为表头,下面为每个人的记录,从第四列开始为附件列,需要加几个附件,就添加几个列,可以留空,像第五列一样:
Name
Title
Attachment
Xiao Ma
PhD.
e:\test.txt
Copper
Dr.
e:\test2.txt
Marry
Miss.
e:\test.txt
2. 保存该word文件。
3. 新建一个Word文档,我用的是word2010版本,选择邮件选项卡。
4. 选择收件人,使用现有列表,打开之前编辑的word文件
5. 使用插入合并域功能,编辑邮件正文:
如:
Dear
<
><>I’m mxio.
Good 2 c u at 9t.
Good
Luck!
mxio
2012.11.13
6. 点击预览结果,更新域
7. 启动编辑宏功能,键盘按ALT+F11
8. 工具\引用添加 Microsoft Outlook 14.0 Object Library
9. 新建模块添加如下代码:
Sub eMailMergeWithAttachments()
Dim docSource As Document, docMaillist As Document
Dim rngDatarange As Range
Dim i As Long, j As Long
Dim lRecordCount As Long
Dim bStarted As Boolean
Dim oOutlookApp As Outlook.Application
Dim oItem As Outlook.MailItem
Dim oAccount As Outlook.Account
Dim sMySubject As String, sMessage As String, sTitle As
String
'将当前文档设置为源文档(主文档)
Set docSource = ActiveDocument
'检查Outlook是不是打开了。如果未打开的话,就打开新的Outlook
On