Outlook 2010: Outlook kapatıldığında Office dışında otomatik olarak nasıl açılır?


Yanıtlar:


4

GERÇEKTEN bu işi sizin için yapmaya çalıştım, ancak Outlook 2010'un artık CDO 1.2.1'i desteklemediğini ve bir programcı olmadıklarını, başka bir şekilde kodlayacak derin bilgiye sahip olmadığımı öğrendim. Her ne kadar desteklenmiyor ve Microsoft tarafından tavsiye edilmese de (neden ondan bahsediyorlar?), Outlook 2007'ye sahipseniz, CDO'yu Outlook 2010'a yükseltmeden önce yüklemek mümkündür.

http://support.microsoft.com/kb/2028411

Bunu yapması durumunda Outlook 2003/2007'de bunun nasıl yapılacağını postalayacağım. Bunu daha yeni test ettim. Ayrıca, 2010 KODU DÜZELTEBİLECEĞİNİZİ DEĞİŞTİRMEK için diğer adımları da göndereceğim.

Outlook 2003/2007 için

  1. Yalnızca Outlook 2007 için, CDO'yu yüklemelisiniz, yoksa kod başarısız olur: http://www.microsoft.com/downloads/en/details.aspx?familyid=2714320d-c997-4de1-986f-24f081725d36&displaylang=en

  2. Şirketinizin grup politikasını geçersiz kılmadığını varsayarak, güvenlik ToolsMacrosSecurity için No Security Check for macros.

  3. Git ToolsMacrosVisual Basic Editor.

  4. Visual Basic simgesine tıklayın ve tıklayın F2 Nesne tarayıcısını açmak için

  5. Sol bölmedeki yeni projede, görene kadar genişlet ThisOutlookSession ve çift tıklayın.

  6. Aşağıdaki kodu kesin ve yeni açılan kod penceresine yapıştırın:

    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. Outlook'u kapatın ve açın.

  8. Makrolar hakkında size bir mesaj verecek. Onları etkinleştir.

Outlook 2010 için

Kodu düzeltebilirseniz , burada Outlook 2010 için atılacak adımlar var. Bunları ekliyorum çünkü birçok öğenin konumu değişti ve bulması zor olabilir. Geçerli kodda, başarısız olan adımı da işaret ederim.

  1. Şirketinizin grup politikasını geçersiz kılmadığını varsayarak, güvenlik FileOptionsTrust CenterTrust Center SettingsMacro Settings için Enable all macros.

  2. Etkinleştirerek başlayın Developer sekme FileOptionsCustomize Ribbon, Kontrol Developer sağ sütunda.

  3. Visual Basic simgesine tıklayın ve nesne tarayıcısını açmak için F2'ye basın.

  4. Git Classes (sol sütun) → ThisOutlookSession ve çift tıklayın.

  5. Aşağıdaki kodu kesin ve yeni açılan kod penceresine yapıştırın:

    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. Outlook'u kapatın ve açın.

  7. Geri dön Developer sekme → Macros simgesi. Makrolar hakkında size bir mesaj verecek. Onları etkinleştir.


3

Bunun etrafındaki bir başka yol (VBA aracılığıyla İşyeri Dışı Yardımcısı'nın tarih / saat parametrelerini değiştirebileceğinize inanmadığım) aşağıdaki adımları uygulamaktır:

  1. Bir mesaj geldiğinde "Kurallar ve Uyarılar" bölümünde bir kural oluşturun ve bu kuralı, e-postanın "Kime" bölümünde olduğunuz her e-postaya otomatik olarak yanıtlayın.
  2. "Belirli bir iletiyi kullanarak sunucunun yanıtını ver" kullanarak yanıt verecek kuralı ayarlayın.
  3. "Özel mesajı" standart bir cevapla doldurun (kaba bir örnek: Sevgili e-posta adresim, şu anda ofisteyim. Çalışma saatleri 08: 00-17: 00 Derhal döndüğümde hemen cevap vereceğim. Saygılarımızla, & lt; -insert signature- & gt; )
  4. Kuralı 'HomeTime' olarak adlandırın (veya anlamlı bir şey - bu, aşağıdaki vba kodu için gerekli olacaktır)
  5. Makroların uygun şekilde çalışmasını sağlamak için Outlook'ta VBA makro güvenliğinizi değiştirin
  6. Sırasında çalışan aşağıdaki kodu ekleyin Application_Start ve Application_Quit kuralı etkinleştirmek / devre dışı bırakmak için:
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

Akılda tutulması gereken 1 husus, bu cevabın müteakip her cevap için her defasında ateşleneceğidir. Müteakip cevapları görmezden gelen Ofis Dışı asistanın aksine.

PS. Yukarıdaki VBA’daki Ofis Dışında kontrolü ile, CDO kitaplığına başvurmanız gerekir. Ofis Dışında olup olmadığını kontrol etmek istemiyorsanız, CDO'ya ihtiyacınız olmaz.


1

Görünüşe göre, Outlook kapatıldığında OOF'u ayarlamak için bağlanabilecek bir Application_Quit olayı oluşturuyor. Outlook'ta Alt-F11 tuşlarına basmak makro düzenleyiciyi açar. Şaka yapmaya başla.


1

Korku veren! Teşekkürler KCotreau. MS Outlook 2003 üzerinde çalışmasını sağladım. Aşağıda kod pasajı var - hepsini tek bir satıra sığdırmayacak şekilde önceden kodla sardım.

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

Bu çok hoş, ama aslında gelecekteki bir günde / saatte çalıştırılması mümkün mü? Bu gerçek bir artı olacak, çünkü planlanmış bir tatiliniz varsa ve OOF'u çevirmeyi unutursanız, insan müdahalesi olmadan otomatik olarak devreye girer ... ha?

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.