ExchangeUser.GetFreeBusy-Methode (Outlook)

Es wird eine Zeichenfolge, die die Verfügbarkeit des ExchangeUser die für einen Zeitraum von 30 Tagen ab dem Startdatum bis Mitternacht des angegebenen Datums abgerufen.

Syntax

Ausdruck. GetFreeBusy( _Start_ , _MinPerChar_ , _CompleteFormat_ )

Ausdruck Eine Variable, die ein ExchangeUser-Objekt darstellt.

Parameter

Name Erforderlich/Optional Datentyp Beschreibung
Start Erforderlich Date Das Datum der Verfügbarkeit, beginnend um Mitternacht.
MinPerChar Erforderlich Long Gibt die Länge der Zeitintervalle in Minuten an. Der Standardwert ist 30 Minuten.
CompleteFormat Optional Variant Der Wert True gibt an, dass eine feinere Granularität Gebucht-Zeit in der Frei/Gebucht-Zeichenfolge zurückgegeben wird. Der Wert False gibt an, dass eine Unterscheidung zwischen nur die verfügbaren und gebuchten Zeiten zurückgegeben wird.

Rückgabewert

Eine String, die die Verfügbarkeit des Exchange-Benutzers für einen Zeitraum von 30 Tagen ab dem Startdatum darstellt, beginnend mit Mitternacht des angegebenen Datums. Jedes Zeichen in der String ist ein Wert, der angibt, ob der Benutzer zur Verfügung (0) ist und optional, ob ein ausgelasteten Zeitraum mit Vorbehalt (1), abwesend (3) oder anderen (2) gekennzeichnet ist.

Beispiel

Im folgende Visual Basic für Applikationen (VBA) verwendet die GetFreeBusy -Methode zum Abrufen der Frei/Gebucht-Informationen mit jedes Zeitintervall, einen Zeitraum von 60 Minuten darstellt, für den Manager für den aktuellen Benutzer zugewiesen. Im Beispiel wird dann verwendet, die betreffenden Informationen zum Berechnen von Datum und Uhrzeit, auf dem der erste freie Zeitraum tritt auf, und zeigt diese Informationen im Fenster Debuggen.

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

Siehe auch

ExchangeUser-Objekt

Support und Feedback

Haben Sie Fragen oder Feedback zu Office VBA oder zu dieser Dokumentation? Unter Office VBA-Support und Feedback finden Sie Hilfestellung zu den Möglichkeiten, wie Sie Support erhalten und Feedback abgeben können.