Método ExchangeUser.GetFreeBusy (Outlook)
Obtiene la cadena que representa la disponibilidad del ExchangeUser durante un período de 30 días desde la fecha de inicio, comienza en la medianoche de la fecha especificada.
Sintaxis
expresión. GetFreeBusy
( _Start_
, _MinPerChar_
, _CompleteFormat_
)
Expresión Variable que representa un objeto ExchangeUser .
Parameters
Nombre | Obligatorio/opcional | Tipo de datos | Descripción |
---|---|---|---|
Start | Obligatorio | Date | Fecha de disponibilidad, que comienza a medianoche. |
MinPerChar | Obligatorio | Long | Especifica la extensión de cada franja horaria en minutos. El valor predeterminado es 30 minutos. |
CompleteFormat | Opcional | Variant | Un valor de True indica que se devuelve una granularidad más fina de tiempo no disponible en la cadena de disponibilidad. Un valor de False indica que se devuelve una distinción entre sólo los tiempos de disponibilidad y. |
Valor devuelto
String que representa la disponibilidad del usuario de Exchange durante un período de 30 días desde la fecha de comienzo, comienza en la medianoche de la fecha especificada. Cada carácter de la String es un valor que indica si el usuario está disponible (0), y opcionalmente, si un tiempo ocupado está marcado como provisional (1), fuera de la oficina (3), u otro (2).
Ejemplo:
El ejemplo siguiente Visual Basic para aplicaciones (VBA) se utiliza el método GetFreeBusy para recuperar la información de disponibilidad, donde cada franja horaria representa un período de 60 minutos, del jefe asignado al usuario actual. En el ejemplo, a continuación, usa esa información para calcular la fecha y hora en que se produce al primer período disponible y muestra esa información en la ventana Depurar.
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
Consulte también
Soporte técnico y comentarios
¿Tiene preguntas o comentarios sobre VBA para Office o esta documentación? Vea Soporte técnico y comentarios sobre VBA para Office para obtener ayuda sobre las formas en las que puede recibir soporte técnico y enviar comentarios.