【问题标题】:Error with Outlook VBA script applied to rule应用于规则的 Outlook VBA 脚本出错
【发布时间】:2015-10-23 16:46:50
【问题描述】:

我在 Outlook 中有一条规则,它将每日电子邮件发送到特定文件夹。然后我有一个 VBA 脚本,当注意到该文件夹​​中有一条新的未读消息时,它会进入并将附件保存到我硬盘上的一个文件夹中,并执行一些其他格式化类型的事情(在附件上)。

然后我将脚本链接到 Outlook 规则向导中的规则,使其作为包运行。

问题如下:脚本在邮件被分类到适当的文件夹之前被启动。实际上,它应该在消息排序后运行(否则它就没有什么可操作的了)。关于如何纠正的任何想法?

目前开始的代码如下:

    sub saveattachment()

应该是这个吗?

    private sub saveattachment()

    public sub saveattachment()

将“规则”嵌入宏中,然后在我的收件箱中出现每日电子邮件时将其作为私人子程序运行会更好吗?

【问题讨论】:

    标签: vba outlook


    【解决方案1】:

    如果您需要将 VBA 宏子分配给 Outlook 规则,则 VBA 子应如下所示:

    Public Sub Test(mail as MailItem)
      ' your code goes there
    End Sub
    

    MailItem 类的实例作为参数传递,代表到达收件箱的电子邮件。

    但如果您需要确保在将邮件移动到特定文件夹时触发您的代码,您需要处理来自该文件夹的 Items 类的 ItemAdd 事件。请注意,当超过 16 个项目同时添加到文件夹时,不会触发该事件。

    Public WithEvents myOlItems As Outlook.Items 
    
    Public Sub Initialize_handler() 
     Set myOlItems = Application.GetNamespace("MAPI").GetDefaultFolder(olFolderContacts).Items 
    End Sub 
    
    Private Sub myOlItems_ItemAdd(ByVal Item As Object) 
     Dim myOlMItem As Outlook.MailItem 
     Dim myOlAtts As Outlook.Attachments 
     Set myOlMItem = myOlApp.CreateItem(olMailItem) 
     myOlMItem.Save 
     Set myOlAtts = myOlMItem.Attachments 
     ' Add new contact to attachments in mail message 
     myOlAtts.Add Item, olByValue 
     myOlMItem.To = "Sales Team" 
     myOlMItem.Subject = "New contact" 
     myOlMItem.Send 
    End Sub
    

    最后,您可能会发现Getting Started with VBA in Outlook 2010 文章很有帮助。

    【讨论】:

      猜你喜欢
      • 2015-08-20
      • 1970-01-01
      • 2013-01-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-17
      相关资源
      最近更新 更多