3

Во-первых, я хочу пояснить, что я исследовал этот и попробовал множество решений, представленных здесь и в других местах. Я прошу прощения, если на этот вопрос уже был дан ответ, клянусь, я посмотрел и попробовал, но главная проблема, которую я имею, состоит в том, что у меня есть навык VB шимпанзе, и я думаю, что решение требует по крайней мере уровня навыка VB Бонобо.

Я пытаюсь создать сценарий VB в Outlook, который будет проходить через мои папки контактов по умолчанию и просматривать все контакты ».Email1Address и преобразуйте "EX" Email1AddressType в строку и запишите его в.Свойство User1.

Цель состоит в том, чтобы всегда иметь возможность экспортировать из Outlook SMTP-адреса моих контактов, которые сохраняются как "EX", когда я добавляю их из GAL.

Я думаю, что я далеко от цели, и любая помощь будет оценена. Спасибо большое:

Public Sub User1SMTPAddress()
Dim objOL As Outlook.Application
Dim objNS As Outlook.NameSpace
Dim objContact As Outlook.ContactItem
Dim objItems As Outlook.Items
Dim objContactsFolder As Outlook.MAPIFolder
Dim oExUser As Outlook.ExchangeUser
Dim obj As Object
Dim SMTPEmailAddress As String
Dim MyContactID As String 
Dim oPA As Outlook.PropertyAccessor

On Error Resume Next
Set objOL = CreateObject("Outlook.Application")
Set objNS = objOL.GetNamespace("MAPI")
Set objContactsFolder = objNS.GetDefaultFolder(olFolderContacts)
Set objItems = objContactsFolder.Items

For Each obj In objItems
    If obj.Class = olContact Then
        Set objContact = obj

        With objContact

            Set oPA = objContact.PropertyAccessor
            MyContactID = oPA.BinaryToString_(oPA.GetProperty("http://schemas.microsoft.com/mapi/proptag/0x0C190102"))
            Set oSender = Globals.objNS.GetAddressEntryFromID(MyContactID)
            oExUser = oSender.GetExchangeUser()
            SMTPEmailAddress = oExUser.PrimarySmtpAddress
            .User1 = SMTPEmailAddress
            .Save

        End With

    End If

    Err.Clear
Next

Set objOL = Nothing
Set objNS = Nothing
Set obj = Nothing
Set objContact = Nothing
Set objItems = Nothing
Set objContactsFolder = Nothing
End Sub

0