【问题标题】:Item.To extraction from Outlook olMail-Item on ItemLoad VBA-EventItem.To 在 ItemLoad VBA-Event 上从 Outlook olMail-Item 提取
【发布时间】:2023-03-20 06:26:01
【问题描述】:

我正在尝试从我在 Outlook 中单击的 Outlook-Mail 访问 .To 行。

具体我想检查邮件是否已经发送到特定的邮箱。

更广阔的视野:
比方说,我点击邮件,我的子程序发现邮件已发送到这个特定的电子邮件地址(Item.To 字段)。在这种情况下,如果用户选择回复该邮件(回复事件),回复邮件的抄送字段应自动包含邮件将发送到的另一个电子邮件地址。

到目前为止我得到的但不起作用:

Private Sub Application_ItemLoad(ByVal Item As Object)
    MsgBox "To: " & Item.To
End Sub

错误: 无法在此事件中处理元素的值和方法。

我是否可能需要以某种方式强制转换对象以将其声明为 ma​​ilitem-object 以访问 .To 字段?或任何其他可能有用的建议?

【问题讨论】:

  • 你试过我的代码了吗?如果你能告诉我它是否有效,我将不胜感激。

标签: vba outlook


【解决方案1】:

应用程序 ItemLoad 事件在 Item 尚未完全初始化时发生。连接另一个项目事件很有用,例如打开、读取(可能是您想要的)等。我们将使用下面的代码在“ThisOutlookSession”类中完成您想要的事件:

Public WithEvents myItem As Outlook.mailItem

Private Sub Application_ItemLoad(ByVal Item As Object)
    If (TypeOf Item Is mailItem) Then
        Set myItem = Item
    End If
End Sub

Private Sub myItem_Read()
 ...
End Sub

干杯!

【讨论】:

    【解决方案2】:

    Application_ItemLoad 是在 Outlook 2007 中引入的,所以我认为这是您的版本。

    我无法对此进行测试,但它应该可以工作:

    Sub CheckRecips()
    
    Dim msg As Outlook.mailItem
    Dim msgRecips As Outlook.Recipients
    Dim msgRecip As Outlook.Recipient
    Dim msgReply As Outlook.mailItem
    Dim found As Boolean
    Dim replyRecip As Outlook.Recipient
    
    If TypeName(Outlook.ActiveExplorer.Selection(1)) = "MailItem" Then
      Set msg = Outlook.ActiveExplorer.Selection(1)
      Set msgRecips = msg.Recipients
    
      For Each msgRecip In msgRecips
        If msgRecip.Type = olTo And msgRecip.Address = "email address you're looking for" Then
          ' we found it, exit loop
          found = True
          Exit For
        End If
      Next msgRecip
    
        ' create reply
      Set msgReply = msg.Reply
    
      ' if email address was on recipient list, CC someone else on reply
      If found Then
          Set replyRecip = msgReply.Recipients.Add("someone else who should be CC'd")
          replyRecip.Type = olCC
      End If
    
      msgReply.Display
    End If
    
    End Sub
    

    将“您正在寻找的电子邮件地址”替换为可能已收到电子邮件的“特定”人员的电子邮件地址。

    将“其他应该抄送的人”替换为您想要抄送的人收到邮件时的电子邮件地址。

    Assign this to a toolbar button 并在需要时使用它。

    【讨论】:

      猜你喜欢
      • 2014-06-03
      • 1970-01-01
      • 1970-01-01
      • 2015-03-01
      • 1970-01-01
      • 1970-01-01
      • 2013-04-11
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多