Во-первых, я хочу пояснить, что я исследовал этот и попробовал множество решений, представленных здесь и в других местах. Я прошу прощения, если на этот вопрос уже был дан ответ, клянусь, я посмотрел и попробовал, но главная проблема, которую я имею, состоит в том, что у меня есть навык 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