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
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.