Метод ExchangeUser.GetFreeBusy (Outlook)
Получает строку, представляющую доступность ExchangeUser в течение 30 дней с даты начала, начиная с полуночи указанной даты.
Синтаксис
выражение. GetFreeBusy
( _Start_
, _MinPerChar_
, _CompleteFormat_
)
Выражение Переменная, представляющая объект ExchangeUser .
Параметры
Имя | Обязательный или необязательный | Тип данных | Описание |
---|---|---|---|
Start | Обязательный | Date | Дата доступности, начиная с полуночи. |
MinPerChar | Обязательный | Long | Указывает продолжительность каждого интервала времени в минутах. Значение по умолчанию — 30 минут. |
CompleteFormat | Необязательный | Variant | Значение True указывает, что в строке доступности возвращается более тонкая степень детализации занятого времени. Значение False указывает, что возвращается различие между доступным временем и временем занятости. |
Возвращаемое значение
Строка, представляющая доступность пользователя Exchange в течение 30 дней с даты начала, начиная с полуночи указанной даты. Каждый символ в строке — это значение, указывающее, доступен ли пользователь (0), и при необходимости указывает, отмечено ли время занятости под предварительным значением (1), отсутствием (3) или другим (2).
Пример
В следующем примере Visual Basic для приложений (VBA) используется метод GetFreeBusy для получения сведений о доступности( каждый интервал времени, представляющий период в 60 минут) для руководителя, назначенного текущему пользователю. Затем в примере эти сведения используются для вычисления даты и времени, в течение которого наступает первый свободный период, и эти сведения отображаются в окне Отладка .
Sub GetManagerOpenInterval()
Dim oManager As ExchangeUser
Dim oCurrentUser As ExchangeUser
Dim FreeBusy As String
Dim BusySlot As Long
Dim DateBusySlot As Date
Dim i As Long
Const SlotLength = 60
'Get ExchangeUser for CurrentUser
If Application.Session.CurrentUser.AddressEntry.Type = "EX" Then
Set oCurrentUser = _
Application.Session.CurrentUser.AddressEntry.GetExchangeUser
'Get Manager
Set oManager = oManager.GetExchangeUserManager
If oManager Is Nothing Then
Exit Sub
End If
FreeBusy = oManager.GetFreeBusy(Now, SlotLength)
For i = 1 To Len(FreeBusy)
If CLng(Mid(FreeBusy, i, 1)) = 0 Then
'get the number of minutes into the day for free interval
BusySlot = (i - 1) * SlotLength
'get an actual date/time
DateBusySlot = DateAdd("n", BusySlot, Date)
'To refine this function, substitute actual
'workdays and working hours in date/time comparison
If TimeValue(DateBusySlot) >= TimeValue(#8:00:00 AM#) And _
TimeValue(DateBusySlot) <= TimeValue(#5:00:00 PM#) And _
Not (Weekday(DateBusySlot) = vbSaturday Or _
Weekday(DateBusySlot) = vbSunday) Then
Debug.Print oManager.name & " first open interval:" & _
vbCrLf & _
Format$(DateBusySlot, "dddd, mmm d yyyy hh:mm AMPM")
Exit For
End If
End If
Next
End If
End Sub
См. также
Поддержка и обратная связь
Есть вопросы или отзывы, касающиеся Office VBA или этой статьи? Руководство по другим способам получения поддержки и отправки отзывов см. в статье Поддержка Office VBA и обратная связь.