使用Outlook VBA脚本,是否可以根据从Mailitem类中获取的唯一标识符显示电子邮件?
即我遍历文件夹并使用SenderName,Subject,SentOn和ConversationID填充列表框.
For i = oFolder.Items.Count To 1 Step -1
Me.ListBox1.AddItem oFolder.Items.Item(i).ConversationID
Next i
Run Code Online (Sandbox Code Playgroud)
列表框位于用户表单中,我希望能够根据ConversationID显示电子邮件.我不确定如何实际做到这一点,但也许是这样的:
Dim Msg As Outlook.MailItem
Set Msg = oFolder.GetObjectFromConversationID(Me.ListBox1.Value).Display
Msg.Display
Run Code Online (Sandbox Code Playgroud)
我找到了基于此的答案:https://stackoverflow.com/a/7439554/757856
基本上,你必须使用MailItem.EntryID,而不是ConversationID
我使用了与上面链接相同的代码,但是我使用了后期绑定而不是早期绑定.以下代码将打开Outlook电子邮件,其中包含EntryID:
Dim oNamespace As Object
Dim Msg As Object
Set oNamespace = oOlApp.GetNamespace("MAPI")
Set Msg = oNamespace.GetItemFromID(EntryID)
Msg.Display
Run Code Online (Sandbox Code Playgroud)