在邮件合并中添加附件.doc

  1. 1、本文档共6页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
在邮件合并中添加附件

本文主要介绍如何通过宏(vba)在邮件合并中添加附件。关于邮件合并的基本使用方法,将不进行介绍。 ? Word的邮件合并是一个很强大、很实用的功能,但是美中不足的是,无法在邮件合并中添加附件,并把附件作为邮件的一部分发送出去(虽然可以通过把整个文档包括附件作为邮件的附件发送出去,但是这样子并不完美解决问题)。为了实现这样的功能,需要借助到宏的帮助。 准备工作: ? 首先用Word建立一个“目录”类型的邮件合并,在主文档中插入一个只有一行的表格,列数根据需要设置,但在我们现在的这个文档中,至少需要两列,第一列存放客人邮箱地址的合并域,第二列存放附件的完整路径的合并域,包括附件的名称与后缀。如果你需要添加多于一个附件,就增加第三列,并把新的附件的路径的合并域放进去。完成以后,实行邮件合并,生成一个包含了所有客人邮箱地址和需要发送给每个客人的附件的路径的Word文档。为该文档建一个你喜欢的名字,并保存在电脑上。这样子,准备工作完成了。 ? ? ? ? 合并前的邮件列表主文档: ? ? ? ?? ?? ? ? ?合并后的邮件列表: ? ? ? ??? 建立宏并完成邮件发送: ? ? 运行本文所介绍的宏,需要电脑中安装有Outlook(建议安装Outlook 2007或者以上版本)。在开始写宏程序之前,需要在vba编辑器中添加对Outlook的引用。具体步骤是:在需要建立邮件合并的Word主文档中按Alt+F11打开vba编辑器,然后在“工具”菜单中选择“引用”,并添加类似于“Microsoft Outlook ##.0 Object Library”的引用,其中“##”是Outlook的版本号(如果我没有记错的话,2003是11.0,2007是12.0,2010是14.0——好像微软觉得13.0不吉利,把13这个版本号给华丽的忽略掉了……)。 ? ? ? ? 然后,插入一个模块,并把下面的代码复制进去: 代码:Sub eMailMergeWithAttachments() ? ? Dim docSource As Document, docMaillist As Document, docTempDoc As Document ? ? Dim rngDatarange As Range ? ? Dim i As Long, j As Long ? ? Dim lSectionsCount 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 Error Resume Next ? ? Set oOutlookApp = GetObject(, "Outlook.Application") ? ? If Err <> 0 Then ? ?? ???Set oOutlookApp = CreateObject("Outlook.Application") ? ?? ???bStarted = True ? ? End If ? ? '打开保存有客人的邮件地址和需要发送的附件的路径的word文档。 ? ? With Dialogs(wdDialogFileOpen) ? ?? ???.Show ? ? End With ? ? '将该文档设置为客户邮件(附件)列表文档 ? ? Set docMaillist = ActiveDocument ? ? '设置发送邮件的账户(账户必须已经在Outlook中设置好了) ? ? '注意:如果你的Outlook版本低于2007,使用设置发送邮件的账户可能会导致错误, ? ? '建议将下面的Set oAccount = oOutlookApp.Session.Accounts.Item("someone@")语句删除 ? ? Set oAccount = oOutlookApp.Session.Accounts.Item("someone@") ? ? '显示一个输入框,询问并让用户输入邮件主题 ? ? sMessage = "请为要发送的邮件输入邮件主题。"

文档评论(0)

zhuwenmeijiale + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:7065136142000003

1亿VIP精品文档

相关文档