次の方法で共有


連絡先フォルダーを列挙し、連絡先アイテムのみのカスタム プロパティを設定する

Outlook フォルダーには、複数のメッセージ クラスのアイテムを含めることができます。 たとえば、既定では、連絡先フォルダーに対し、連絡先アイテムと配布リスト アイテムを作成できます。 フォルダー内の連絡先アイテムのみや配布リスト アイテムのみに対する処理を効率よく実行するには、フォルダー内の各アイテムのメッセージ クラスをチェックしたうえで処理を適用する必要があります。

このトピックでは、アイテムのメッセージ クラスを使用して連絡先アイテムを識別し、連絡先フォルダーのすべての連絡先アイテムに対し、ユーザー定義の Affiliation というフィールドを設定するコード サンプルを示します。 処理の手順は次のとおりです。

  1. 既定の連絡先フォルダーのすべてのアイテムを取得します。

  2. Items.Restrict を使用して、既定の連絡先フォルダーのすべてのアイテムから連絡先アイテムを抽出します。

  3. 各連絡先アイテムについて、 UserProperties.Add を使用して、ユーザー定義フィールド Affiliation を追加し、自宅電話番号の存在に基づいて値を設定します。 自宅電話番号が存在しないアイテムの場合は、 Affiliation プロパティは Business に設定し、それ以外の場合は Personal に設定します。

注釈

このコード サンプルを実行するには、組み込みの ThisOutlookSession モジュールにコードを配置します。 SetAffiliationForContacts プロシージャを実行します。

Affiliation という名前のフィールドが既に存在する場合、このサンプルを実行すると、そのフィールドが上書きされます。

Sub SetAffiliationForContacts() 
 Dim ns As NameSpace 
 Dim foldContact As Folder 
 Dim itemContact As ContactItem 
 Dim colItems As Outlook.Items 
 Dim myProperty As Outlook.UserProperty 
 
 Set ns = Application.GetNamespace("MAPI") 
 Set foldContact = ns.GetDefaultFolder(olFolderContacts) 
 Set colItems = foldContact.Items.Restrict("[MessageClass]='IPM.Contact'") 
 
 For Each itemContact In colItems 
 ' Add user property to contact items 
 Set myProperty = itemContact.UserProperties.Add("Affiliation", olText) 
 If itemContact.HomeTelephoneNumber = "" Then 
 myProperty = "Business" 
 Else 
 myProperty = "Personal" 
 End If 
 itemContact.Save 
 Next 
End Sub

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

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