Outlook VBA - 如何访问日历上当前选定的时间范围?

时间:2009-03-21 22:08:42

标签: vba outlook

我正在尝试在Outlook中编写一个VBA宏,这将允许我显示用于输入Outlook约会信息的自定义UI。我有这个适用于现有约会,但我希望能够通过让用户单击并拖动以选择时间范围然后触发宏来创建新约会。 (这适用于Outlook中内置的New Appointment命令。)我想知道如何以编程方式获取所选的时间范围,以便在通过宏创建新约会时可以使用它。

有谁知道如何从VBA访问此信息?

2 个答案:

答案 0 :(得分:1)

答案 1 :(得分:0)

更好的方法是使用SelectedStartTimeSelectedEndTime https://msdn.microsoft.com/en-us/library/office/ff869571.aspx

Public Sub GetNewAppt() 
    Dim exp As Explorer: Set exp = Outlook.ActiveExplorer
    Dim mfCalFolder As MAPIFolder
    Set mfCalFolder = exp.CurrentFolder
    Dim vw As View: Set vw = exp.CurrentView
    If vw.ViewType = olCalendarView Then
        With vw
            Dim objAppt As AppointmentItem
            Set objAppt = mfCalFolder.Items.Add
            objAppt.Start = .SelectedStartTime
            objAppt.End = .SelectedEndTime
            objAppt.Display
        End With
    End If
End Sub

我使用功能区上的自定义按钮触发此操作。没有测试2007年或之前的版本。