ExchangeUser.GetFreeBusy 方法 (Outlook)

获取一个 字符串 表示 ExchangeUser 的可用性 30 天内从开始日期开始,在指定日期的午夜开始。

语法

expression. GetFreeBusy( _Start_ , _MinPerChar_ , _CompleteFormat_ )

表达 一个代表 ExchangeUser 对象的变量。

参数

名称 必需/可选 数据类型 说明
Start 必需 日期 忙闲程度的日期,从零时开始。
MinPerChar 必需 Long 以分钟为单位指定每个时间段的长度。 默认值为 30 分钟。
CompleteFormat 可选 Variant True 值表明忙/闲字符串中返回的繁忙时间粒度更细。 False 值表明只空闲时间和繁忙时间之间的差异将返回。

返回值

String ,表示 Exchange 用户的可用性的 30 天内从开始日期开始,在指定日期的午夜。 在 String中的每个字符是一个值,该值指示用户是否可用 (0),并可以选择是否繁忙时间被标记为暂定 (1)、 (3),办公室或其他 (2)。

示例

(VBA) 示例下面的 Visual Basic for Applications 使用 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 支持和反馈,获取有关如何接收支持和提供反馈的指南。