Я пишу код в VBA (в Excel), который помещает контакты Outlook в список рассылки.
Пока это работает, но обработка ошибок в случае, если контакт не существует, не работает.MS говорит:
Если указанный получатель недействителен, метод AddMember завершится ошибкой.
Итак, как вы замечаете, что метод не работает?
Public Function olAddContactToList(ByVal sLastName As String, _
Optional ByVal sFirstName As String, _
Optional ByVal sGroup As String) As Boolean
Dim oOutlook As Object ' Outlook.Application
Dim oNameSpace As Object ' Outlook.NameSpace
Dim oMAPIFolder As Object ' Outlook.MAPIFolder
Dim oContact As Object ' Outlook.ContactItem
Dim oList As Object ' Outlook.DistListItem
Dim oMail As Object ' Outlook.MailItem
Dim oRecip As Object ' Outlook.Recipient
Const olFolderContacts = 10
On Error GoTo ErrHandler
Set oOutlook = CreateObject("Outlook.Application")
Set oNameSpace = oOutlook.GetNamespace("MAPI")
Set oMAPIFolder = oNameSpace.GetDefaultFolder(olFolderContacts)
Set oList = oNameSpace.GetDefaultFolder(olFolderContacts).Items(sGroup)
'Adds a member to a new distribution list
Set oMail = oOutlook.CreateItem(olMailItem)
'Create recipient for distlist
Set oRecip = oOutlook.Session.CreateRecipient(sFirstName & " " & sLastName)
oRecip.Resolve
oList.AddMember oRecip
oList.Save
olAddContactToList = True
ErrHandler:
If Err.Number <> 0 Then
MsgBox "Fehler beim Hinzufügen des Outlook-Kontakts zu einer Liste." & vbCrLf & _
CStr(Err.Number) & " " & Err.Description, vbExclamation + vbOKOnly
olAddContactToList = False
End If
Set oContact = Nothing
Set oMAPIFolder = Nothing
Set oNameSpace = Nothing
Set oOutlook = Nothing
Set oList = Nothing
Set oMail = Nothing
Set oRecip = Nothing
End Function
Я пытался
Dim AddCheck As Long
AddCheck = oList.AddMember(oRecip)
, но AddCheck
остается 0 независимо от того, существует ли контакт и успешно добавляется в список или не существует и не может быть добавлен.