Outlook 2010: Como desativar o Office automaticamente quando o Outlook é fechado?

3

É possível fazer com que o Outlook 2010 ative o recurso "Respostas automáticas" ao fechar o aplicativo? Eu gosto de ligar "Out of Office" no final do dia, mas com pressa é facilmente esquecido.

    
por Mikael Koskinen 03.06.2011 / 10:45

4 respostas

4

Eu REALMENTE tentei fazer isso funcionar para você, mas aprendi que o Outlook 2010 não suporta mais o CDO 1.2.1, e não sendo um programador, eu não tinha o conhecimento profundo para codificá-lo de outra maneira. Embora sem suporte e não recomendado pela Microsoft (por que eles mencionam então?), É possível instalar o CDO se você tiver o Outlook 2007, antes de atualizar para o Outlook 2010.

link

Vou postar como fazer isso no Outlook 2003/2007, caso alguém aconteça com isso. Eu acabei de testar isso. Eu também vou postar as outras etapas para o Outlook 2010. Assumindo que você pode consertar o código.

Para o Outlook 2003/2007

  1. Somente para o Outlook 2007, você deve instalar o CDO ou o código falhará: link

  2. Supondo que a política de grupo da sua empresa não substitua isso, altere a segurança em ToolsMacrosSecurity para No Security Check for macros .

  3. Vá para ToolsMacrosVisual Basic Editor .

  4. Clique no ícone do Visual Basic e pressione F2 para abrir o navegador de objetos.

  5. No novo projeto, no painel esquerdo, expanda-o até ver ThisOutlookSession e clique duas vezes nele.

  6. Recorte e cole o seguinte código na janela de código que acabou de abrir e salve-o:

    Private Sub Application_Quit()
        Dim objMAPISession As Object
        Set objReminders = Nothing
        If MsgBox("Would you like to turn the Out of Office Assistant on?", vbYesNo, "Activate Out of Office Assistant") = vbYes Then
            Set objMAPISession = CreateObject("MAPI.Session")
            objMAPISession.Logon , , True, False
            objMAPISession.OutOfOffice = True
            objMAPISession.Logoff
        End If
        Set objMAPISession = Nothing
    End Sub
    
  7. Feche e abra o Outlook.

  8. Ele fornecerá uma mensagem sobre macros. Ative-os.

Para o Outlook 2010

Se você puder corrigir o código , estas são as etapas do Outlook 2010. Eu as incluo porque os locais de muitos itens foram alterados e podem ser difíceis de encontrar. No código atual, também indico o passo que falha.

  1. Supondo que a política de grupo de sua empresa não substitua isso, altere a segurança em FileOptionsTrust CenterTrust Center SettingsMacro Settings para Enable all macros .

  2. Comece ativando a guia Developer em FileOptionsCustomize Ribbon , verifique Developer na coluna à direita.

  3. Clique no ícone do Visual Basic e pressione F2 para abrir o navegador de objetos.

  4. Vá para Classes (coluna da esquerda) → ThisOutlookSession e clique duas vezes nela.

  5. Recorte e cole o seguinte código na janela de código que acabou de abrir e salve-o:

    Private Sub Application_Quit()
        Dim objMAPISession As Object
        Set objReminders = Nothing
        If MsgBox("Would you like to turn the Out of Office Assistant on?", vbYesNo, "Activate Out of Office Assistant") = vbYes Then
            Set objMAPISession = CreateObject("MAPI.Session") THIS IS THE STEP THAT FAILS
            objMAPISession.Logon , , True, False
            objMAPISession.OutOfOffice = True
            objMAPISession.Logoff
        End If
        Set objMAPISession = Nothing
    End Sub
    
  6. Feche e abra o Outlook.

  7. Volte para a guia DeveloperMacros . Ele lhe dará uma mensagem sobre macros. Ative-os.

por 03.06.2011 / 16:35
3

Outra maneira de contornar isso (pois não acredito que você possa alterar os parâmetros de data / hora para o Assistente Fora do Escritório via VBA) é executar as seguintes etapas:

  1. Crie uma regra em "Regras e alertas" para quando uma mensagem chegar e tenha essa regra respondida automaticamente para todos os e-mails em que você estiver na parte "Para" do e-mail.
  2. Defina a regra para responder usando "ter resposta do servidor usando uma mensagem específica"
  3. Preencha a "mensagem específica" com uma resposta de modelo padrão (exemplo aproximado: Caro remetente de e-mail, no momento estou no escritório. Horário de funcionamento das 8h às 17h. Responderei prontamente no meu retorno. Atenciosamente, < -insertar assinatura > )
  4. Nomeie a regra 'HomeTime' (ou algo significativo - isso será necessário para o código vba abaixo)
  5. Altere sua segurança de macros do VBA no Outlook para habilitar a execução de macros adequadamente
  6. Inclua o seguinte código, executado durante Application_Start e Application_Quit , para ativar / desativar a regra:
Option Explicit

Private Sub Application_Quit()
   SetRuleEnabled True
End Sub

Private Sub Application_Startup()
   SetRuleEnabled False
End Sub

Private Sub SetRuleEnabled(ByVal bEnable As Boolean)
   Dim oSession    As Outlook.NameSpace
   Dim oRule       As Outlook.Rule
   Dim oRules      As Outlook.Rules
   Dim oPA         As Outlook.PropertyAccessor

   Set oSession = Application.Session
   Set oRules = oSession.DefaultStore.GetRules()
   Set oPA = oSession.DefaultStore.PropertyAccessor

   '*** If the Out-Of-Office is already on (eg. holidays, sick leave etc.) 
   '*** then it might be best to force this rule permanently off
   If oPA.GetProperty("http://schemas.microsoft.com/mapi/proptag/0x661D000B") Then
      bEnable = False
   End If

   For Each oRule In oRules
      If oRule.Name = "HomeTime" Then
         oRule.Enabled = bEnable
         oRules.Save
         Exit For
      End If
   Next

End Sub

1 questão a ter em mente é que essa resposta será disparada a cada vez para cada resposta subsequente. Ao contrário do assistente de ausência temporária que ignora as respostas subsequentes.

PS. Com o Out of Office check no VBA acima, você precisará fazer referência à biblioteca do CDO. Se você não quiser verificar se o Out-Of-Office está sendo ativado, não será necessário o CDO.

    
por 08.08.2013 / 03:55
1

Parece que o Outlook gera um evento Application_Quit ao fechar o que poderia ser ligado para definir o OOF. Pressionar Alt-F11 no Outlook exibe o editor de macro. Comece a cutucar por aí.

    
por 03.06.2011 / 14:51
1

Impressionante! Obrigado KCotreau. Eu tenho que trabalhar no MS Outlook 2003. Abaixo está o trecho de código - eu apenas embrulhei-o no pre e código para não ter tudo em uma única linha.

Private Sub Application_Quit() 
Dim objMAPISession As Object
Set objReminders = Nothing
If MsgBox("Would you like to turn the Out of Office Assistant on?", vbYesNo, "Activate Out of Office Assistant") = vbYes Then
    Set objMAPISession = CreateObject("MAPI.Session")
    objMAPISession.Logon , , True, False
    objMAPISession.OutOfOffice = True
    objMAPISession.Logoff
End If
Set objMAPISession = Nothing
End Sub

Isso é legal, mas é possível executá-lo em um dia / hora futuros? Isso será uma vantagem real, porque se você tiver um período de férias planejado e esquecer de desligar a OOF, ele entrará automaticamente em ação sem intervenção humana ... eh?

    
por 15.11.2011 / 21:57