2009-03-21 1 views
3

Я пытаюсь написать макрос VBA в Outlook, который позволит мне отображать пользовательский интерфейс для ввода информации о встречах Outlook. У меня есть работа для существующих назначений, но я хотел бы иметь возможность создавать новые встречи, щелкая и перетаскивая пользователя, чтобы выбрать временной диапазон, а затем запустить макрос. (Это работает для встроенной команды New Appointment в Outlook.) Я хотел бы знать, как программно получить выбранный временной диапазон, чтобы я мог использовать его при создании нового назначения через макрос.Outlook VBA - Как получить доступ к диапазону времени, выбранному в календаре?

Кто-нибудь знает, как получить доступ к этой информации из VBA?

ответ

0

Лучший способ заключается в использовании SelectedStartTime и SelectedEndTime 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 или предыдущий.