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:
O exemplo de código obtém todos os itens da pasta Contatos padrão.
Ele usa Items.Restrict para filtrar itens de contato de todos os itens na pasta Contatos padrão.
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.