Partager via


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

Objet ExchangeUser

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.