Поделиться через


Метод 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

См. также

Объект ExchangeUser

Поддержка и обратная связь

Есть вопросы или отзывы, касающиеся Office VBA или этой статьи? Руководство по другим способам получения поддержки и отправки отзывов см. в статье Поддержка Office VBA и обратная связь.