Поделиться через


Импорт сохраненных элементов с помощью OpenSharedItem

Microsoft Outlook предоставляет метод OpenSharedItem для объекта NameSpace для открытия файлов встреч iCalendar (ICS), файлов vCard (VCF) и сообщений Outlook (MSG) и возвращает соответствующий элемент Outlook. Тип объекта, возвращаемого этим методом, зависит от типа открытого общего элемента, как описано в следующей таблице.

Тип общего элемента Элемент Outlook
ICalendar appointment (ICS-файл) AppointmentItem
VCard (VCF-файл) ContactItem
Файл сообщения Outlook (MSG-файл) Тип соответствует типу элемента, сохраненного как MSG-файл.

После открытия общего элемента можно импортировать его с помощью метода Save возвращаемого объекта, чтобы сохранить его в папку по умолчанию, соответствующую этому элементу Outlook.

Этот пример открывает и импортирует файл vCard в папку Контакты по умолчанию для текущего пользователя.

  1. Пример получает ссылку на объект NameSpace , а затем вызывает метод GetSharedItem объекта NameSpace , чтобы загрузить файл vCard и вернуть ссылку ContactItem .

  2. Затем он вызывает метод Saveобъекта ContactItem , чтобы сохранить его в папке Контакты по умолчанию.

  3. Наконец, он получает ссылку на объект Folder на папку по умолчанию Contacts для текущего пользователя с помощью метода GetDefaultFolder объекта NameSpace , а затем отображает папку.

Public Sub OpenSharedContact() 
 
 Dim oNamespace As NameSpace 
 Dim oSharedItem As ContactItem 
 Dim oFolder As Folder 
 
 On Error GoTo ErrRoutine 
 
 ' Get a reference to a NameSpace object. 
 Set oNamespace = Application.GetNamespace("MAPI") 
 
 ' Open the vCard (.vcf) file containing the shared item. 
 Set oSharedItem = oNamespace.OpenSharedItem( _ 
 "C:/SampleContact.vcf") 
 
 ' Save the item to the Contacts default folder. 
 oSharedItem.Save 
 
 ' Get a reference to and display the Contacts default folder. 
 Set oFolder = oNamespace.GetDefaultFolder( _ 
 olFolderContacts) 
 oFolder.Display 
 
EndRoutine: 
 On Error GoTo 0 
 Set oSharedItem = Nothing 
 Set oFolder = Nothing 
 Set oNamespace = Nothing 
Exit Sub 
 
ErrRoutine: 
 Select Case Err.Number 
 Case 287 ' &H0000011F 
 ' This error occurs if the code is run by an 
 ' untrusted application, and the user chose not to 
 ' allow access. 
 MsgBox "Access to Outlook was denied by the user.", _ 
 vbOKOnly, _ 
 Err.Number & " - " & Err.Source 
 Case -2147024894 ' &H80070002 
 ' Occurs if the specified file or URL could not 
 ' be found, or the file or URL cannot be 
 ' processed by the OpenSharedItem method. 
 MsgBox Err.Description, _ 
 vbOKOnly, _ 
 Err.Number & " - " & Err.Source 
 Case -2147352567 ' &H80020009 
 ' Occurs if the specified file or URL is not valid, 
 ' or you attempt to use the Move method on 
 ' an Outlook item that represents a shared item. 
 MsgBox Err.Description, _ 
 vbOKOnly, _ 
 Err.Number & " - " & Err.Source 
 Case Else 
 ' Any other error that may occur. 
 MsgBox Err.Description, _ 
 vbOKOnly, _ 
 Err.Number & " - " & Err.Source 
 End Select 
 
 GoTo EndRoutine 
End Sub

Поддержка и обратная связь

Есть вопросы или отзывы, касающиеся Office VBA или этой статьи? Руководство по другим способам получения поддержки и отправки отзывов см. в статье Поддержка Office VBA и обратная связь.