Compartir a través de


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

Objeto ExchangeUser

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.