我有一些用户希望在他们切换到Outlook中的日历文件夹时选择多个日历。 所以我从以下代码中获取了示例代码:
http://www.slipstick.com/developer/code-samples/select-multiple-calendars-outlook/
稍微修改了一下并给了我的用户。问题是它没有在这些Outlook之一上工作,我找不到原因。 下面是我的代码,确切的问题是这个宏不能“选择/启用”我想要的日历 - 但如果我尝试调试代码并将MsgBox用于测试 - 看起来代码是正确的位置。 Procmon没有显示任何“访问被拒绝”或其他类型的错误。 你能帮我调查一下吗?
Sub SelectCalendars()
Dim objPane As Outlook.NavigationPane
Dim objModule As Outlook.CalendarModule
Dim objGroupA, objGroupB As Outlook.NavigationGroup
Dim objNavFolder As Outlook.NavigationFolder
Dim objCalendar As Folder
Dim objFolder As Folder
Dim i As Integer
Dim test As Outlook.NavigationFolder
Set Application.ActiveExplorer.CurrentFolder = Session.GetDefaultFolder(olFolderCalendar)
DoEvents
Set objCalendar = Session.GetDefaultFolder(olFolderCalendar)
Set objPane = Application.ActiveExplorer.NavigationPane
Set objModule = objPane.Modules.GetNavigationModule(olModuleCalendar)
With objModule.NavigationGroups
Set objGroupA = .Item(1)
End With
' First calendar group
Set objNavFolder = objGroupA.NavigationFolders.Item(1)
MsgBox objNavFolder.DisplayName
MsgBox objNavFolder.IsSelected
objNavFolder.IsSelected = False
' Second calendar group
Set objNavFolder = objGroupA.NavigationFolders.Item(2)
MsgBox objNavFolder.DisplayName
MsgBox objNavFolder.IsSelected
objNavFolder.IsSelected = False
Set objPane = Nothing
Set objModule = Nothing
Set objGroup = Nothing
Set objNavFolder = Nothing
Set objCalendar = Nothing
Set objFolder = Nothing
End Sub
答案 0 :(得分:0)
首先,我建议使用Debug.Print
语句而不是消息框。
NavigationFolder类的IsSelected属性允许设置一个布尔变量,该变量指示是否选择了NavigationFolder对象进行显示。尝试将此属性设置为true(而不是false)。