Vba 将公用文件夹添加到我的收藏夹

Vba 将公用文件夹添加到我的收藏夹,vba,outlook,office365,Vba,Outlook,Office365,我正在寻找一个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 Pub

我正在寻找一个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,所以我不知道代码本身是否正确……但当我开始运行脚本时,它总是弹出一个窗口,我应该在其中添加一个“宏名称”:

当我输入宏名并按“run”时,它会显示“编译错误在过程外部无效”


你能告诉我我做错了什么吗?

你可以通过访问模块来管理Outlook收藏夹组

Dim mailModule作为Outlook.mailModule
设置mailModule=Application.ActiveExplorer().NavigationPane.Modules.GetNavigationModule(Outlook.OlNavigationModuleType.olModuleEmail)
将favGroup设置为Outlook.NavigationGroup
设置favGroup=ailModule.NavigationGroups.GetDefaultNavigationGroup(Outlook.OlGroupType.olFavoriteFoldersGroup)
favGroup.NavigationFolders.Add(objFolder)
在文章中阅读更多关于这方面的内容


此外,您可能会发现将Microsoft Exchange公用文件夹添加到公用文件夹的收藏夹文件夹的方法很有用。

该对话框为空,因为它只显示没有参数的子例程,并且示例中的两个子例程都有参数。既然你在某个地方“发现”了它,那个地方也应该有如何使用它的说明。你没有读那些说明吗?