【问题标题】:Trigger when composing e-mail撰写电子邮件时触发
【发布时间】:2018-01-05 03:20:46
【问题描述】:

每次我选择一条消息时都会执行此代码。我希望仅在撰写新邮件/回复/转发时执行此代码。

Private Sub Application_ItemLoad(ByVal Item As Object)
    Dim oAccount As Outlook.Explorer
    If TypeName(Item) = "MailItem" Then
        MsgBox ("this is mail")
        Set oAccount = Application.ActiveExplorer   
        MsgBox (oAccount.CurrentFolder.FolderPath)
    End If
End Sub

我想要实现的目标:从特定帐户 (account@mail.com) 撰写邮件时,在抄送字段中添加收件人。

我是编程菜鸟。

【问题讨论】:

  • 您到底想要达到什么目的?
  • 谢谢你们的回复。我想要实现的是:当有人试图从特定帐户(account@mail.com)撰写邮件时,自动需要在 CC 字段中添加收件人。如果从任何其他配置的电子邮件帐户撰写,则不会发生任何事情。如果这有意义...再次感谢这里的任何帮助...
  • 最简单的方法不是挂钩 ItemLoad 而是挂钩 ItemSend 事件,即在发送邮件之前检查:msdn.microsoft.com/de-de/library/office/ff865076.aspx
  • Kostas K.:有什么线索可以在该特定代码中指定我想在 CC 字段中输入的电子邮件地址吗?抱歉这个菜鸟问题。

标签: vba outlook


【解决方案1】:

您可以测试MailItem.Sent 属性以确定是撰写邮件还是阅读收到的邮件。

Private Sub Application_ItemLoad(ByVal Item As Object)

    Dim oAccount As Outlook.Explorer

    If TypeName(Item) = "MailItem" Then

        If item.Sent Then
            MsgBox "Not for processing"
        Else
            MsgBox "Processing this mail"
            Set oAccount = Application.ActiveExplorer   
            MsgBox (oAccount.CurrentFolder.FolderPath)
        End If

    End If

End Sub

【讨论】:

    猜你喜欢
    • 2021-06-16
    • 1970-01-01
    • 2014-09-02
    • 2016-05-02
    • 2017-05-13
    • 1970-01-01
    • 2015-01-20
    • 1970-01-01
    • 2016-04-02
    相关资源
    最近更新 更多