Outlook VBA教程:使用 EntryID 和 StoreID

如果使用 Microsoft Outlook 创建更加复杂的解决方案,其中涉及链接或交叉引用文件夹中的项目,则可以选择使用每个项目的基于 MAPI 的标识符 (ID)。如果知道项目的标识符和存储项目的文件夹,则可使用GetItemFromID方法直接引用项目。

每个 Outlook 项目都有一个名为“EntryID”的字段,该字段是邮件传输存储系统产生的唯一 ID 字段,与存储项目的 MAPI 文件夹协同使用。请注意,在文件夹中创建项目时,将为项目分配一个新的 EntryID。这意味着如果将项目移动到其他文件夹中,或将项目导出然后导入(即使到同一文件夹中),EntryID 字段也将发生变化。

每个文件夹都有一个名为“StoreID”的 ID 字段,对于特定邮件存储区中的所有文件夹,该字段的值是相同的。每个文件夹还有一个唯一的 EntryID 字段。

当使用 GetItemFromID方法根据项目 ID 检索项目时,应该同时指定项目的 EntryID 和文件夹的 StoreID。如果没有指定 StoreID,GetItemFromID 将搜索默认的邮件存储区。

以下 Microsoft Visual Basic/Visual Basic for Applications 示例举例说明 GetItemFromID方法的用法。该代码从默认的“联系人”文件夹检索 StoreID,并用文件夹中所有联系人的 EntryID 填充数组 (MyEntryID),最后检索特定联系人项目。


Sub OutlookEntryID()
   Dim ol As Outlook.Application
   ' If there are more than 500 contacts, change the following line:
   Dim MyEntryID(500) As String
   Dim StoreID As String
   Dim EntryID As String
   Set ol = New Outlook.Application
   Set olns = ol.GetNamespace("MAPI")
   Set objFolder = olns.GetDefaultFolder(olFolderContacts)
   ' Get the StoreID, which is a property of the folder.
   StoreID = objFolder.StoreID
   ' Set objAllContacts equal to the collection of all contacts.
   Set AllContacts = objFolder.Items
   I = 0
   ' Loop to get all of the EntryIDs for the contacts.
   For Each Item In AllContacts
      I = I + 1
      MyEntryID(I) = Item.EntryID
   Next
   ' Randomly choose the 2nd contact to retrieve.
   Set Item = olns.GetItemFromID(MyEntryID(2), StoreID)
   Item.Display
End Sub

上页:Outlook VBA教程:使用 Outlook 中的 Visual Basic for Applications 下页:Outlook VBA教程:在 Visual Basic 编辑器中处理窗体

Outlook VBA教程:使用 EntryID 和 StoreID:相关链接

Outlook VBA教程:在 Visual Basic 编辑器中处理窗体 Outlook VBA教程:处理 Outlook事件
Outlook VBA教程:编写 Outlook 宏 Outlook VBA教程:Activate事件
Outlook VBA教程:AdvancedSearchComplete事件 Outlook VBA教程:AdvancedSearchStopped事件
Outlook VBA教程:AttachmentAdd事件 Outlook VBA教程:AttachmentRead事件
Outlook VBA教程:BeforeAttachmentSave事件 Outlook VBA教程:BeforeCheckNames事件
Outlook VBA教程:BeforeDelete事件 Outlook VBA教程:BeforeFolderSwitch事件
Outlook VBA教程:BeforeGroupAdd事件 Outlook VBA教程:BeforeGroupRemove事件
Outlook VBA教程:BeforeGroupSwitch事件 Outlook VBA教程:BeforeItemCopy事件
Outlook VBA教程:BeforeItemCut事件 Outlook VBA教程:BeforeItemPaste事件
Outlook VBA教程:BeforeMaximize事件 Outlook VBA教程:BeforeMinimize事件
版权所有 © 中山市飞娥软件工作室 证书:粤ICP备09170368号