Макрос Visual Basic в Outlook 2010, сохранение в определенной папке? - PullRequest
3 голосов
/ 07 августа 2011

Я работаю над преобразованием людей из старого почтового клиента в Outlook 2010. Попытка эффективного преобразования контактов может быть трудной, поэтому у нас есть некоторый код, который помогает нам.Процесс, который я использую, работает до определенного момента.У меня есть все VCards из контактов и я нашел исходный код для макроса онлайн, который импортирует все эти VCards.Проблема в том, что по умолчанию используется адресная книга «Контакты».Вот код:

Sub OpenSaveVCard()

    Dim objWSHShell As IWshRuntimeLibrary.IWshShell
    Dim objOL As Outlook.Application
    Dim colInsp As Outlook.Inspectors
    Dim strVCName As String
    Dim fso As Scripting.FileSystemObject
    Dim fsDir As Scripting.Folder
    Dim fsFile As Scripting.File
    Dim vCounter As Integer

    Set fso = New Scripting.FileSystemObject
    Set fsDir = fso.GetFolder("C:\VCARDS")

    For Each fsFile In fsDir.Files
        strVCName = "C:\VCARDS\" & fsFile.Name
        Set objOL = CreateObject("Outlook.Application")
        Set colInsp = objOL.Inspectors
        If colInsp.Count = 0 Then
                Set objWSHShell = CreateObject("WScript.Shell")
                objWSHShell.Run strVCName
                Set colInsp = objOL.Inspectors

                If Err = 0 Then
                    Do Until colInsp.Count = 1
                    DoEvents
                    Loop
                    colInsp.Item(1).CurrentItem.Save
                    colInsp.Item(1).Close olDiscard
                    Set colInsp = Nothing
                    Set objOL = Nothing
                    Set objWSHShell = Nothing
                End If
        End If
    Next
End Sub

Я не слишком знаком с Visual Basic и написанием макросов, есть ли способ указать, в какую адресную книгу сохранять?Например, если у меня есть адресная книга с именем «Тест».Спасибо за любую помощь.

1 Ответ

0 голосов
/ 08 августа 2011

Похоже, что вы можете использовать Session.AddressBook (найдено здесь )

Вы можете получить доступ к Адресной книге с помощью этого вида кода:

Set olkRecipients = cdoSession.AddressBook(, "Global Address List", 0, False)

В моей версии(2007), свойство, которое я нашел, было Session.AddressLists, и я не смог найти Addressbook.Попробуйте и посмотрите, какой из них работает.

...