Outlook / VBA:获取当前视图的开始和结束日期

时间:2016-11-29 22:53:02

标签: vba outlook

我为各种Office应用程序编写了VBA,但我是Outlook的新手,所以我还在学习各种Outlook对象。

在Outlook日历视图中,我要么在" Day"," Work Week"," Week"," Month& #34;,或者" Schedule View"安排。我可以在这些之间进行更改但是我希望看到我的活动。今天是2016年11月29日,显示在我的日历(Outlook 2016)上方,我看到:

  • :" 2016年11月29日"
  • 工作周:" 2016年11月28日 - 12月2日"
  • :" 2016年11月26日 - 12月2日"
  • 等...

这显然是我当前视图的日期范围(可能是错误的字词)。

如何在VBA中引用此视图的开始和/或结束日期?我想澄清我 NOT 想要选择的开始和结束日期(这是我在网上找到的),但实际观点 - - 我目前在Outlook客户端应用程序上看到了什么。

提前感谢您的时间和帮助。

1 个答案:

答案 0 :(得分:1)

您需要CalendarView.DisplayDates属性。这是一个包含显示的每个日期的数组。获取数组中的第一个和最后一个值。请参阅here

下面为了清晰起见而复制和修改了代码:

Sub DisplayDayRange()

 Dim objView As CalendarView
 Dim varArray As Variant
 Dim beginDate As Date
 Dim endDate As Date

    ' Check if the current view is a calendar view.

    If Application.ActiveExplorer.CurrentView.ViewType = olCalendarView Then       

        ' Obtain a CalendarView object reference for the     
        ' current calendar view.

        Set objView = Application.ActiveExplorer.CurrentView

        ' Obtain the DisplayedDates value, a string  
        ' array of dates representing the dates displayed           
        ' in the calendar view.

        varArray = objView.DisplayedDates

        ' If the example obtained a valid array, display  
        ' a dialog box with a summary of its contents.

        If IsArray(varArray) Then

            beginDate = varArray(LBound(varArray))
            endDate = varArray(UBound(varArray))
            MsgBox "There are " & (UBound(varArray) - LBound(varArray)) + 1 & " days displayed, from " & beginDate & " to " & endDate  
        End If     
    End If

 End Sub