【发布时间】:2023-03-06 18:14:02
【问题描述】:
我正在寻找一个 VBA 脚本来自动将公用文件夹添加到 Outlook 365 中的“收藏夹”文件夹(稍后将其添加为 GPO)。我找到了多个脚本,例如这个:
' path to public folder; should be similar to
' "Public Folders\All Public Folders\Company\Sales"
strFolder = "\\Public Folders - gabriel.buehler@wingd.com\All Public Folders\Local Winterthur Holidays"
Call AddFolderToFavorites(strFolder, True)
Sub AddFolderToFavorites(strPath, AddToAddressBook)
Const olContactItem = 2
Set myFolder = GetFolder(strPath)
If Not myFolder Is Nothing Then
myFolder.AddToPFFavorites
' if contacts folder,
' optionally add new Favorite to OAB
If myFolder.DefaultItemType = olContactItem Then
If AddToAddressBook = True Then
strFavFolder = _
"Public Folders\Favorites\" & _
myFolder.Name
Set myFavFolder = GetFolder(strFavFolder)
If Not myFavFolder Is Nothing Then
myFavFolder.ShowAsOutlookAB = True
End If
End If
End If
End If
Set myFolder = Nothing
End Sub
Public Function GetFolder(strFolderPath)
On Error Resume Next
strFolderPath = Replace(strFolderPath, "/", "\")
arrFolders = Split(strFolderPath, "\")
Set objApp = CreateObject("Outlook.Application")
Set objNS = objApp.GetNamespace("MAPI")
Set objFolder = objNS.Folders.Item(arrFolders(0))
If Not objFolder Is Nothing Then
For I = 1 To UBound(arrFolders)
Set colFolders = objFolder.Folders
Set objFolder = Nothing
Set objFolder = colFolders.Item(arrFolders(I))
If objFolder Is Nothing Then
Exit For
End If
Next
End If
Set GetFolder = objFolder
Set colFolders = Nothing
Set objNS = Nothing
Set objApp = Nothing
End Function
说实话:我以前没有用过VBA,所以我不知道代码本身是否正确......但是当我开始运行脚本时,它总是会弹出一个窗口,我应该在其中添加一个“宏名称”:
当我输入宏名称并按“运行”时,它显示“编译错误无效外部过程”。
你能告诉我我做错了什么吗?
【问题讨论】:
-
该对话框是空的,因为它只显示没有参数的子例程,并且您的示例中的两个子例程都有参数。既然你在某个地方“找到”了这个,那个地方也应该有关于如何使用它的说明。您没有阅读这些说明吗?