我正在将人们从较旧的电子邮件客户端转换为Outlook2010。尝试高效地转换联系人可能很痛苦,因此我们有一些代码可以帮助我们完成工作。我正在使用的过程在一定程度上可行。我从联系人处获得了所有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和编写宏,有没有一种方法可以指定要保存到的通讯簿?例如,如果我有一个名为“测试”的通讯簿。感谢您的任何帮助。
最佳答案
似乎可以使用Session.AddressBook
(找到了here)
您可以使用以下代码访问AddressBook:
Set olkRecipients = cdoSession.AddressBook(, "Global Address List", 0, False)
在我的版本(2007)中,我发现的属性是
Session.AddressLists
,但找不到Addressbook
。试试看,看看哪个可行。关于vba - Outlook 2010中的Visual Basic宏是否保存到特定文件夹?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6974409/