Outlook 2010中的Visual Basic宏,保存到特定文件夹?

时间:2011-08-07 17:20:45

标签: vba outlook vcard

我正在将人们从旧的电子邮件客户端转换为Outlook 2010.尝试有效地转换联系人可能会很痛苦,因此我们有一些代码可以帮助我们完成工作。我正在使用的过程非常有用。我有来自联系人的所有VCard,并找到了导入所有这些VCard的宏在线源代码。问题是它默认为“联系人”地址簿。这是代码:

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和编写宏并不是很熟悉,有没有办法指定保存哪个地址簿?例如,如果我有一个名为“Test”的地址簿。谢谢你的帮助。

1 个答案:

答案 0 :(得分:0)

好像你可以使用Session.AddressBook(找到here

您可以使用以下代码访问AddressBook:

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

在我的版本(2007)上,我找到的属性是Session.AddressLists,我找不到Addressbook。试试看哪一个有效。