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
另请参阅
支持和反馈
有关于 Office VBA 或本文档的疑问或反馈? 请参阅 Office VBA 支持和反馈,获取有关如何接收支持和提供反馈的指南。