Compartilhar via


Método ExchangeUser.GetFreeBusy (Outlook)

Obtém um String que representa a disponibilidade do ExchangeUser por um período de 30 dias a partir da data de início, começando à meia-noite da data especificada.

Sintaxe

expression. GetFreeBusy( _Start_ , _MinPerChar_ , _CompleteFormat_ )

Expressão Uma variável que representa um objeto ExchangeUser .

Parâmetros

Nome Obrigatório/Opcional Tipo de dados Descrição
Start Obrigatório Date A data da disponibilidade, começando à meia-noite.
MinPerChar Obrigatório Long Especifica a duração de cada intervalo de tempo em minutos. O padrão é 30 minutos.
CompleteFormat Opcional Variant Um valor True indica que uma granularidade menor de tempo ocupado será retornada na sequência de livre/ocupado. Um valor False indica que uma distinção entre apenas os horários disponíveis e ocupados será retornada.

Valor de retorno

Um String que representa a disponibilidade do usuário do Exchange por um período de 30 dias da data de início, começando à meia-noite da data especificada. Cada caractere no String é um valor que indica se o usuário está disponível (0), e, opcionalmente, se um tempo ocupado está marcado provisório (1), fora do escritório (3), ou outros (2).

Exemplo

O seguinte exemplo Visual Basic for Applications (VBA) usa o método GetFreeBusy para recuperar as informações de livre/ocupado, com cada intervalo de tempo que representa um período de 60 minutos, para o gerente atribuído ao usuário atual. O exemplo então usa essas informações para calcular a data e hora em que o primeiro período livre ocorre e exibe essas informações na janela de depuração.

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

Confira também

Objeto ExchangeUser

Suporte e comentários

Tem dúvidas ou quer enviar comentários sobre o VBA para Office ou sobre esta documentação? Confira Suporte e comentários sobre o VBA para Office a fim de obter orientação sobre as maneiras pelas quais você pode receber suporte e fornecer comentários.