Outlook 2010选择日历

时间:2015-06-01 13:30:48

标签: vba calendar outlook

我有一些用户希望在他们切换到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

1 个答案:

答案 0 :(得分:0)

首先,我建议使用Debug.Print语句而不是消息框。

NavigationFolder类的IsSelected属性允许设置一个布尔变量,该变量指示是否选择了NavigationFolder对象进行显示。尝试将此属性设置为true(而不是false)。