Uygulamayı kapattığımda Outlook 2010'u "Otomatik Yanıtlar" özelliğini açmam mümkün mü? Günün sonunda "İşyeri Dışı" nı açmak hoşuma gidiyor, ancak acele etmesi kolay unutuldu.
Uygulamayı kapattığımda Outlook 2010'u "Otomatik Yanıtlar" özelliğini açmam mümkün mü? Günün sonunda "İşyeri Dışı" nı açmak hoşuma gidiyor, ancak acele etmesi kolay unutuldu.
Yanıtlar:
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.
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
Şirketinizin grup politikasını geçersiz kılmadığını varsayarak, güvenlik Tools
→ Macros
→ Security
için No Security Check for macros
.
Git Tools
→ Macros
→ Visual Basic Editor
.
Visual Basic simgesine tıklayın ve tıklayın F2 Nesne tarayıcısını açmak için
Sol bölmedeki yeni projede, görene kadar genişlet ThisOutlookSession
ve çift tıklayın.
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
Outlook'u kapatın ve açın.
Makrolar hakkında size bir mesaj verecek. Onları etkinleştir.
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.
Şirketinizin grup politikasını geçersiz kılmadığını varsayarak, güvenlik File
→ Options
→ Trust Center
→ Trust Center Settings
→ Macro Settings
için Enable all macros
.
Etkinleştirerek başlayın Developer
sekme File
→ Options
→ Customize Ribbon
, Kontrol Developer
sağ sütunda.
Visual Basic simgesine tıklayın ve nesne tarayıcısını açmak için F2'ye basın.
Git Classes
(sol sütun) → ThisOutlookSession
ve çift tıklayın.
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
Outlook'u kapatın ve açın.
Geri dön Developer
sekme → Macros
simgesi. Makrolar hakkında size bir mesaj verecek. Onları etkinleştir.
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:
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.
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?