Méthode ExchangeUser.GetFreeBusy (Outlook)
Obtient une valeur de type String représentant la disponibilité de l’objet ExchangeUser pour une période de 30 jours à partir de minuit, à la date de début spécifiée.
Syntaxe
expression. GetFreeBusy
( _Start_
, _MinPerChar_
, _CompleteFormat_
)
Expression Variable qui représente un objet ExchangeUser .
Parameters
Nom | Requis/Facultatif | Type de données | Description |
---|---|---|---|
Start | Requis | Date | Date de disponibilité, commençant à minuit. |
MinPerChar | Obligatoire | Long | Indique la longueur de chaque créneau horaire en minutes. La valeur par défaut est 30 minutes. |
CompleteFormat | Facultatif | Variant | La valeur True indique qu'une disponibilité plus précise est renvoyée dans la chaîne de disponibilité. La valeur False indique qu’une distinction entre uniquement les heures disponibles et les heures de disponibilité est retournée. |
Valeur renvoyée
Chaîne qui représente la disponibilité de l’utilisateur Exchange pendant une période de 30 jours à partir de la date de début, à compter de minuit de la date spécifiée. Chaque caractère de la chaîne est une valeur indiquant si l’utilisateur est disponible (0) et éventuellement, si une heure occupée est marquée provisoire (1), absence du bureau (3) ou autre (2).
Exemple
L'exemple de code Visual Basic pour Applications (VBA) suivant montre comment utiliser la méthode GetFreeBusy pour extraire les informations de disponibilité, chaque créneau horaire représentant une période de 60 minutes, pour le responsable assigné à l'utilisateur actuel. L’exemple utilise ensuite ces informations pour calculer la date et l’heure de la première période libre et affiche ces informations dans la fenêtre Débogage .
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
Voir aussi
Assistance et commentaires
Avez-vous des questions ou des commentaires sur Office VBA ou sur cette documentation ? Consultez la rubrique concernant l’assistance pour Office VBA et l’envoi de commentaires afin d’obtenir des instructions pour recevoir une assistance et envoyer vos commentaires.