次の方法で共有


EntryID および StoreID の使用

このトピックでは、アイテムのエントリ ID とストアのストア ID を使用して 、NameSpace 内の特定のアイテムにアクセスする方法について説明します。

フォルダー内のアイテムをリンクまたは相互参照する Microsoft Outlook を使用して、より複雑なソリューションを作成する場合、1 つのオプションは、各項目の MAPI ベースの識別子 (ID) を使用することです。 アイテムの ID と格納されているフォルダーがわかっている場合は、 NameSpace.GetItemFromID メソッドを使用してアイテムを直接参照できます。

各 Outlook アイテムには 、EntryID という名前のフィールドがあります。これは、アイテムを格納する MAPI フォルダーで使用するためにメッセージング ストレージ システムによって生成される一意の ID フィールドです。 フォルダーにアイテムが作成されるたびに、新しい EntryID が割り当てられることに注意してください。 つまり、項目が別のフォルダーに移動された場合、または項目がエクスポートされてインポートされた場合 (同じフォルダーにあっても) EntryID フィールドが変更されます。

各フォルダーには Folder.StoreID という ID フィールドがあり、その値は特定のメッセージ ストア内のすべてのフォルダーで同じです。 各フォルダーには、一意の [エントリ ID] フィールドもあります。 GetItemFromID メソッドを使用して ID に基づいてアイテムを取得する場合は、アイテムの EntryID とフォルダーの StoreID の両方を指定する必要があります。 StoreID を指定しない場合、GetItemFromID は既定のメッセージ ストアを検索します。 次の Microsoft Visual Basic for Applications (VBA) の例は、GetItemFromID メソッドの使い方を示しています。 コードは、既定の連絡先フォルダーから StoreID を取得し、配列 ( MyEntryID) にフォルダー内のすべての連絡先のエントリ ID を入力し、最後に特定の連絡先アイテムを取得します。

Sub OutlookEntryID() 
 ' 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 olns = Application.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

サポートとフィードバック

Office VBA またはこの説明書に関するご質問やフィードバックがありますか? サポートの受け方およびフィードバックをお寄せいただく方法のガイダンスについては、Office VBA のサポートおよびフィードバックを参照してください。