2012-11-08 18 views
5

मुझे प्रदर्शित होने से पहले आउटलुक अलर्ट प्रोग्रामेटिक रूप से खारिज करने की कोई किस्मत नहीं है।आउटलुक रिमाइंडर को खारिज करें

Private Sub Application_Reminder(ByVal Item As Object) 
    Dim objRem As Reminder 
    Dim objRems As Reminders 
    If Item.Subject = "TESTING" Then 
     'downloadAndSendSpreadReport 
     Set objRems = Application.Reminders 
     i = 0 
     For Each objRem In objRems 
      i = i + 1 
      If objRem.Caption = "TESTING" Then 
       objRems.Remove i 
       If objRem.IsVisible Then 
        objRem.Dismiss 
       End If 
       Exit For 
      End If 
     Next objRem 
     Item.ReminderSet = False 
     Item.Delete 
     'Item.Dismiss 
    End If 
End Sub 

मैं उन की आवश्यकता होगी, मैन्युअल रूप से अनुस्मारक खारिज करने के लिए बिना कुछ मैक्रो के लिए एक ट्रिगर के रूप में इस नियुक्ति मद का उपयोग करना चाहते।

मुझे लगता है, जब इस घटना शुरू हो रहा है, अनुस्मारक आइटम नहीं दिख रहा है, इस प्रकार

खारिज नहीं किया जा सकता है मैं अनुस्मारक सेट से हटाने की कोशिश की लेकिन यह मेरा कैलेंडर से पूरे घटना को हटाना है। साथ ही, यह अभी भी ASCII में एक STRANGE TITLE अनुस्मारक प्रदर्शित नहीं करेगा।

मैं अनुस्मारक आइटम को गलत पर सेट करने के लिए थक गया था, अनुस्मारक संपत्ति अभी भी पॉप अप हो गई है।

तो मैं के लिए एक तरीका ढूंढ रहा हूं) अनुस्मारक को स्वचालित रूप से पॉप/बी से पहले खारिज कर दें)। इसे स्वचालित रूप से पॉप होने के बाद अनुस्मारक को खारिज करें .... या Outlook में अनुसूचित मैक्रो करने के लिए कोई कामकाज। (। कृपया ध्यान दें कि मैं Windows और न ही VBS में अनुसूचित काम का उपयोग करने की अनुमति नहीं है)

अपडेट:

अब मैं निम्नलिखित कोड है। अनुस्मारक हटाया जा रहा है, लेकिन यह अभी भी एक अनुस्मारक खिड़की को एक कैप्शन के साथ पॉप आउट करेगा जैसे "कोई अपॉइंटमेंट/रिमाइंडर नहीं है" इस तरह कुछ।

beforeReminderShow घटना अनुस्मारक वस्तु isVisible = सच

तो मैं बाहर खारिज कर सकते हैं अर्थ में उपयोगी है .. लेकिन अनुस्मारक खिड़कियों पॉप अप करने के वहाँ भले ही 0 घटना जारी रहेगा।

Private WithEvents olRemind As Outlook.Reminders 
Private Sub olRemind_BeforeReminderShow(Cancel As Boolean) 
Set objRems = Application.Reminders 
    For Each objRem In objRems 
      If objRem.Caption = "TESTING" Then 
       If objRem.IsVisible Then 
        objRem.Dismiss 
       End If 
       Exit For 
      End If 
     Next objRem 

End Sub 

[हल] अंतिम संपादन अंतिम समाधान व्यावहारिक (मैं "ThisOutlookSession" मॉड्यूल में रखा) आशा इस दूसरों

' declare this object withEvents displaying all the events 
Private WithEvents olRemind As Outlook.Reminders 
Private Sub Application_Reminder(ByVal Item As Object) 
    Set olRemind = Outlook.Reminders 
    ' RUN OTHER MACRO HERE 
End Sub 

Private Sub olRemind_BeforeReminderShow(Cancel As Boolean) 

    For Each objRem In olRemind 
      If objRem.Caption = "TESTING" Then 
       If objRem.IsVisible Then 
        objRem.Dismiss 
        Cancel = True 
       End If 
       Exit For 
      End If 
     Next objRem 

End Sub 

उत्तर

3

एक ही रास्ता मैं ऐसा करने के तरीके पता है में मदद करता है निम्नलिखित नुसार।

आप इस

set olRemind = olApp.Reminders 

करने के लिए कहाँ olApp आपके Outlook आवेदन वस्तु है की जरूरत आपत्ति है जब आप अपने आउटलुक के लिए अपने मॉड्यूल/वर्ग के शीर्ष पर

Private WithEvents olRemind As Outlook.Reminders 

फिर इस की जरूरत है।

अब अपने कोड में आप इस घटना

Private Sub olRemind_BeforeReminderShow(Cancel As Boolean) 

के लिए एक बार जब आप शीर्ष पर WithEvents डाल तो आप सभी घटनाओं आप उपयोग कर सकते हैं देखने के लिए सक्षम हो जाएगा की जरूरत है।

अब आप इस घटना को रद्द कर सकते हैं और इस प्रकार अनुस्मारक विंडो नहीं देख सकते हैं।

+0

मैं इसे सोमवार को एक कोशिश दे देंगे, धन्यवाद प्रदर्शित अग्रिम। मैं घटना नहीं ढूंढ सका। धन्यवाद! – Larry

+0

फिर से अपना प्रश्न पढ़ने पर, मैं सोच रहा हूं कि आपको पहले से क्या है और मेरा सुझाव का संयोजन करना होगा। मैं ऐसे मामले के बारे में सोच रहा हूं जहां आप एक अनुस्मारक को हटाना चाहते हैं लेकिन उपयोगकर्ता के पास अन्य अनुस्मारक हैं। इस मामले में आप अपना हटा दें और फिर अनुस्मारक विंडो दिखाएं। यदि आपका एकमात्र अनुस्मारक है तो आप उस घटना का उपयोग करेंगे जो मैंने खिड़की को दिखाने के लिए सुझाव दिया है। – darbid

+0

हाय @ डार्बिड कृपया प्रश्न पर मेरा संपादन देखें। धन्यवाद – Larry

2

यदि आप सभी अनुस्मारक खारिज करना चाहते हैं, तो आप निम्न कोड लागू simplye कर सकते हैं:

घोषित इस वस्तु withEvents सभी घटनाओं

Private WithEvents olRemind As Outlook.Reminders 

Private Sub Application_Reminder(ByVal Item As Object) 
Set olRemind = Outlook.Reminders 
' RUN OTHER MACRO HERE 
End Sub 

Private Sub olRemind_BeforeReminderShow(Cancel As Boolean) 

Cancel = True   

End Sub 
+0

थैंक्स @sparksustc बचाया है, मैंने अपने प्रश्न के अंत में अपना अंतिम व्यावहारिक संस्करण पोस्ट किया है। लेकिन आपका उत्तर उपरोक्त दरबीड के उत्तर का वास्तविक कार्यान्वयन है। – Larry

संबंधित मुद्दे