收到邮件时如何调用代码?

How to invoke code when there is incoming mail?

我有 VBA 代码可以在邮件进入 Outlook 后立即下载附件。

如何调用此代码或是否有其他方法自动下载附件?

Sub saveAttachtoDisk(itm As Outlook.MailItem)
    Dim saveFolder As String
    saveFolder = "D:\outlook\"
    For Each objAtt In itm.Attachments
        MsgBox objAtt
        objAtt.SaveAsFile saveFolder & "\" & objAtt.DisplayName
        MsgBox saveFolder & "\" & objAtt.DisplayName
        Set objAtt = Nothing
    Next
End Sub

您似乎正在尝试创建一个规则来触发 VBA 脚本以将附件保存在磁盘上。如果是这样,我建议从代码中删除任何 MsgBox 语句。它可能会停止来自 运行 的代码。相反,您可以在代码中使用 Debug.Print 语句。有关详细信息,请参阅 Where does VBA Debug.Print log to?

您可以考虑处理应用程序 class 的 NewMailEx 事件而不是使用规则。对于 Microsoft Outlook 处理的每个接收项目,该事件都会触发一次。该项目可以是多种不同项目类型中的一种,例如 MailItem、MeetingItem 或 SharingItem。 EntryIDsCollection 字符串包含对应于该项目的条目 ID。

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