Compartilhar via


Enumerar a pasta Contatos e definir propriedade personalizada apenas para itens de contato

Uma pasta do Outlook pode conter itens de mais de uma classe de mensagem. Por exemplo, por padrão, é possível criar itens de contato e de lista de distribuição na pasta Contatos. Para aplicar sistematicamente uma ação somente aos itens de contato ou aos itens de lista de distribuição da pasta, você deve consultar a classe de mensagem de cada item da pasta antes de aplicar a ação.

Este tópico mostra um exemplo de código que usa a classe de mensagem de um item para identificar itens de contato e define um campo Affiliation definido pelo usuário para todos os itens de contato da pasta Contatos. O processo está descrito a seguir:

  1. O exemplo de código obtém todos os itens da pasta Contatos padrão.

  2. Ele usa Items.Restrict para filtrar itens de contato de todos os itens na pasta Contatos padrão.

  3. Para cada item de contato, ele usa UserProperties.Add para adicionar uma afiliação de campo definida pelo usuário e define-o com base na existência de um número de telefone doméstico. Se não existir um telefone residencial para o item, a propriedade Affiliation será definida como Business; caso contrário, o campo será definido como Personal.

Comentários

Para executar o exemplo de código, coloque o código no módulo ThisOutlookSession interno. Execute o SetAffiliationForContacts procedimento.

Lembre-se de que, se já houver um campo chamado Affiliation, a execução deste exemplo o substituirá.

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

Suporte e comentários

Tem dúvidas ou quer enviar comentários sobre o VBA para Office ou sobre esta documentação? Confira Suporte e comentários sobre o VBA para Office a fim de obter orientação sobre as maneiras pelas quais você pode receber suporte e fornecer comentários.