如何在Excel中获取Outlook对话ID?

时间:2016-03-07 21:45:11

标签: excel vba excel-vba outlook-vba

我正在使用Outlook参考库为我的VBA代码从Excel中的电子表格发送大量电子邮件。

当我发送电子邮件时,我需要将会话ID号保存到表格中的单元格。如何将此属性从电子邮件返回到Excel?

1 个答案:

答案 0 :(得分:0)

发送电子邮件后,搜索已发送文件夹,然后获取会话ID。

此处按主题If olItem.Subject = "0m3r" Then搜索的示例打印ConvID到单元格A1

Option Explicit
Sub ConvID()
    Dim olNameSpace As Outlook.Namespace
    Dim olApp As Outlook.Application
    Dim olSentMail As Outlook.MAPIFolder
    Dim olItem As Object ' Mail Item
    Dim ConvID As Object ' ConversationID

    Set olApp = CreateObject("Outlook.Application")
    Set olNameSpace = olApp.GetNamespace("MAPI")
    Set olSentMail = olNameSpace.GetDefaultFolder(olFolderSentMail)
    Set olItem = olApp.CreateItem(olMailItem)

    For Each ConvID In olSentMail.Items
        If olItem.Class = olMail Then ' ignores MeetingItem or ReportItem
            If TypeName(ConvID) = "MailItem" Then
            Set olItem = ConvID
                If olItem.Subject = "0m3r" Then
                  Debug.Print olItem.ConversationID
                  Range("A1").Value = olItem.ConversationID
                End If
            End If
        End If
    Next

End Sub