【问题标题】:Add a public Folder to my Favorite Folder将公共文件夹添加到我的收藏夹
【发布时间】: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,所以我不知道代码本身是否正确......但是当我开始运行脚本时,它总是会弹出一个窗口,我应该在其中添加一个“宏名称”:

当我输入宏名称并按“运行”时,它显示“编译错误无效外部过程”。

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

【问题讨论】:

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

标签: vba outlook office365


【解决方案1】:

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

    Dim mailModule as Outlook.MailModule 
    Set mailModule = Application.ActiveExplorer().NavigationPane.Modules.GetNavigationModule(Outlook.OlNavigationModuleType.olModuleMail)
    Dim favGroup as Outlook.NavigationGroup  
    Set favGroup = ailModule.NavigationGroups.GetDefaultNavigationGroup(Outlook.OlGroupType.olFavoriteFoldersGroup)
    favGroup.NavigationFolders.Add(objFolder)

Add a Folder to the Favorite Folders Group 文章中了解更多信息。

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

【讨论】:

    猜你喜欢
    • 2019-01-02
    • 1970-01-01
    • 2017-12-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-08
    • 1970-01-01
    • 2020-01-03
    相关资源
    最近更新 更多