Outlook模板使用VBA提取Excel

时间:2018-06-19 22:24:57

标签: excel vba excel-vba outlook outlook-vba

我有一个数据列表,其中包含存储在excel工作表上的各种条目详细信息(按,日期,金额等)。我正在尝试自动支持那些首先输入条目的人。

我要编写的宏的目标是:

  1. 创建一个邮件对象
  2. 将邮件对象设置为Outlook模板文件
  3. 设置然后在模板中填充有关原始条目编写者(我将向谁发送数据)的数据,他们对条目留下的评论,并提取该模板的其他一些细节。
  4. 保存到草稿中以供以后查看/发送

这是我必须要做的:

Sub SendMail()
        Dim olApp As Outlook.Application 
         Dim olMail As Outlook.MailItem 
         Dim  blRunning As Boolean

         blRunning = True 
         on Error Resume Next 
         Set olApp = GetObject (,"Outlook.Application") 
         If olApp Is Nothing Then 
             Set olApp = New Outlook.Application 
             blRunning = False 
        End If  
        On Error GoTo 0 

        Set olMail = olApp.CreateItem(olMailItem) 
        With olMail 
            .Subject = "Automatic Entry Support" 
            .Recipients.Add "J.Doe@gmail.com"  
            .Attachments.Add "C:\Users\J.Doe\Documents\Project\Template draft.xlsx"  
            .Body = "Support message" 
            .Display ("Spell check, data attached?, SEND")
        End With
        If Not blRunning Then olApp.Quit

        Set olApp = Nothing
        Set olMail = Nothing
    End Sub

(在代码中有几行用“假”行放置,不显示任何重要内容)。

此外,这是我在该网站上的第一篇文章,因此,如果我提出的问题格式不正确,请发表评论。

更新:尝试运行代码时,我也收到错误消息:“运行时错误'-2147024894(8007002):自动化错误”

1 个答案:

答案 0 :(得分:0)

 .Body = "Support message" 

您可以在设置邮件正文之前尝试设置BodyFormat

您很可能已经在Outlook中遇到了安全问题。在本文中,“安全性”是指所谓的“对象模型防护”,它触发安全提示并阻止对某些功能的访问,以防止恶意程序从Outlook数据中获取电子邮件地址并使用Outlook传播病毒和垃圾邮件。

可能的解决方法是:

  1. Outlook Security Manager,可以动态禁用和启用Outlook中的安全性。
  2. 一个不会触发安全性问题的低级代码(扩展MAPI)。
  3. 开发一个COM加载项。为了避免Outlook对象模型安全提示,外接程序必须从此Outlook.Application对象派生所有Outlook对象。在VSTO加载项中,这将是Globals.ThisAddin.Application对象。
  4. 部署GPO策略。

Outlook "Object Model Guard" Security Issues for Developers文章中详细了解可能的选项。