Outlook 2010: Cara mengaktifkan Office secara otomatis ketika Outlook ditutup?

4

Apakah mungkin untuk mengaktifkan Outlook 2010 pada fitur "Balasan Otomatis" ketika saya menutup aplikasi? Saya suka menyalakan "Out of Office" pada akhir hari tetapi terburu-buru itu mudah dilupakan.

Mikael Koskinen
sumber

Jawaban:

5

Saya BENAR-BENAR mencoba membuat ini bekerja untuk Anda, tetapi saya belajar bahwa Outlook 2010 tidak lagi mendukung CDO 1.2.1, dan tidak menjadi seorang programmer, saya tidak memiliki pengetahuan yang mendalam untuk mengkodekannya dengan cara lain. Meskipun tidak didukung dan tidak direkomendasikan oleh Microsoft (mengapa mereka menyebutkannya kemudian ??), dimungkinkan untuk menginstal CDO jika Anda memiliki Outlook 2007, sebelum Anda memutakhirkan ke Outlook 2010.

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

Saya akan memposting cara melakukan ini di Outlook 2003/2007 kalau-kalau ada yang terjadi pada ini. Saya baru saja menguji ini. Saya juga akan memposting langkah-langkah lain untuk Outlook 2010 MEMASANG ANDA BISA TETAP KODE.

Untuk Outlook 2003/2007

  1. Untuk Outlook 2007 saja, Anda harus menginstal CDO atau kode akan gagal: http://www.microsoft.com/downloads/en/details.aspx?familyid=2714320d-c997-4de1-986f-24f081725d36&displaylang=en

  2. Dengan asumsi kebijakan grup perusahaan Anda tidak menimpanya, ubah keamanan di ToolsMacrosSecuritymenjadi No Security Check for macros.

  3. Buka ToolsMacrosVisual Basic Editor.

  4. Klik pada ikon Visual Basic, dan tekan F2untuk membuka browser objek.

  5. Di proyek baru di panel kiri rentangkan hingga Anda melihat ThisOutlookSessiondan mengklik dua kali.

  6. Potong dan tempel kode berikut ke jendela kode yang baru saja dibuka dan simpan:

    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. Tutup dan buka Outlook.

  8. Ini akan memberi Anda pesan tentang makro. Aktifkan mereka.

Untuk Outlook 2010

Jika Anda dapat memperbaiki kode , berikut adalah langkah-langkah untuk Outlook 2010. Saya menyertakannya karena lokasi banyak item telah berubah, dan mungkin sulit ditemukan. Dalam kode saat ini, saya juga menunjukkan langkah yang gagal.

  1. Dengan asumsi kebijakan grup perusahaan Anda tidak menimpanya, ubah keamanan di FileOptionsTrust CenterTrust Center SettingsMacro Settingsmenjadi Enable all macros.

  2. Mulailah dengan mengaktifkan Developertab di FileOptionsCustomize Ribbon, periksa Developerdi kolom kanan.

  3. Klik pada ikon Visual Basic, dan tekan F2 untuk membuka objek browser.

  4. Pergi ke Classes(kolom kiri) → ThisOutlookSessiondan klik dua kali.

  5. Potong dan tempel kode berikut ke jendela kode yang baru saja dibuka dan simpan:

    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. Tutup dan buka Outlook.

  7. Kembali ke Developertab → Macrosikon. Ini akan memberi Anda pesan tentang makro. Aktifkan mereka.

KCotreau
sumber
4

Cara lain untuk mengatasi ini (karena saya tidak percaya Anda dapat mengubah parameter tanggal / waktu untuk Asisten Di Luar Kantor melalui VBA) adalah dengan melakukan langkah-langkah berikut:

  1. Buat aturan di "Aturan dan Lansiran" untuk saat pesan masuk dan minta aturan itu balas otomatis ke setiap email di mana Anda berada di bagian "Kepada" dari email.
  2. Tetapkan aturan untuk merespons menggunakan "minta balasan server menggunakan pesan tertentu"
  3. Isi "pesan spesifik" dengan respons templat standar (contoh kasar: Emailer yang terhormat, saya saat ini sedang berada di kantor. Jam kerja dari jam 8 pagi sampai jam 5 sore. Saya akan segera menanggapi kembalinya saya. Hormat saya, <-masukkan tanda tangan-> )
  4. Beri nama aturan 'HomeTime' (atau sesuatu yang bermakna - ini akan diperlukan untuk kode vba di bawah)
  5. Ubah keamanan makro VBA Anda di Outlook untuk mengaktifkan pengoperasian makro dengan tepat
  6. Sertakan kode berikut yang berjalan selama Application_Startdan Application_Quituntuk mengaktifkan / menonaktifkan aturan:
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

Satu hal yang perlu diingat adalah bahwa respons ini akan diaktifkan setiap kali untuk setiap balasan berikutnya. Berbeda dengan asisten Out-Of-Office yang mengabaikan balasan selanjutnya.

PS. Dengan cek Out of Office di VBA di atas, Anda perlu referensi ke perpustakaan CDO. Jika Anda tidak ingin memeriksa berada di Luar Kantor, Anda tidak perlu CDO.

kurus kering
sumber
2

Luar biasa! Terima kasih KCotreau. Saya membuatnya bekerja pada MS Outlook 2003. Di bawah ini adalah potongan kode - Saya baru saja membungkusnya dengan pra dan kode untuk tidak memiliki semuanya dalam satu baris.

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

Ini bagus, tetapi mungkinkah menjalankannya di hari yang akan datang? Itu akan menjadi nilai tambah nyata, karena jika Anda memiliki liburan yang direncanakan dan lupa untuk mengubah OOF, itu akan secara otomatis masuk tanpa campur tangan manusia ... eh?

Jaroos
sumber
1

Tampaknya Outlook menghasilkan acara Application_Quit saat menutup yang dapat dikaitkan untuk mengatur OOF. Menekan Alt-F11 di Outlook menampilkan editor makro. Mulai menyodok di sekitar sana.

uSlackr
sumber