2012-06-29 8 views
26

मैं एक मैक्रो लिख रहा हूं जो एक डोमेन के रूप में एक नागियो सर्वर से प्राप्त अलर्ट के आधार पर डेटाबेस पर टिकट बनाता है। हालांकि, मै मैक की जांच करते समय मैक्रो को अनंत लूप में नहीं चला सकता क्योंकि यह बहुत संसाधन भारी है और मेरा डेस्कटॉप लटकता है। मुझे केवल नए मेल प्राप्त होने पर ही मैक्रो को ट्रिगर करने का कोई तरीका ढूंढना होगा।Outlook में एक नया मेल प्राप्त होने के बाद चलाने के लिए मैक्रो को कैसे ट्रिगर करूं?

मैंने एमएसडीएन वेबसाइट पर न्यूमेल कार्यक्रमों के साथ कुछ खोजा, लेकिन मुझे कुछ भी सुसंगत नहीं मिल रहा है। क्या कोई मुझे नए मेल ईवेंट से मैक्रोज़ को ट्रिगर करने के तरीके को दिखाने के लिए नमूना कोड का थोड़ा सा दिखा सकता है?

उत्तर

44

यह कोड डिफ़ॉल्ट ईवेंट इनबॉक्स में इवेंट श्रोता जोड़ देगा, फिर इनकमिंग ईमेल पर कुछ कार्रवाई करें। आपको उस कोड को नीचे दिए गए कोड में जोड़ना होगा।

Private WithEvents Items As Outlook.Items 
Private Sub Application_Startup() 
    Dim olApp As Outlook.Application 
    Dim objNS As Outlook.NameSpace 
    Set olApp = Outlook.Application 
    Set objNS = olApp.GetNamespace("MAPI") 
    ' default local Inbox 
    Set Items = objNS.GetDefaultFolder(olFolderInbox).Items 
End Sub 
Private Sub Items_ItemAdd(ByVal item As Object) 

    On Error Goto ErrorHandler 
    Dim Msg As Outlook.MailItem 
    If TypeName(item) = "MailItem" Then 
    Set Msg = item 
    ' ****************** 
    ' do something here 
    ' ****************** 
    End If 
ProgramExit: 
    Exit Sub 
ErrorHandler: 
    MsgBox Err.Number & " - " & Err.Description 
    Resume ProgramExit 
End Sub 

ThisOutlookSession मॉड्यूल में कोड चिपकाने के बाद, आपको Outlook को पुनरारंभ करना होगा।

+0

आउटलुक प्रोफेशनल प्लस 2010 – Superdooperhero

+1

में मेरे लिए काम नहीं करता है मेरे खराब, मैक्रोज़ अक्षम थे। मूर्खतापूर्ण बात यह है कि यद्यपि इस परिदृश्य के लिए मैक्रो सुरक्षा का अलग-अलग स्तर नहीं है। – Superdooperhero

+6

@JimmyPena आइटम_इटम कहाँ कहा जाता है? –

6

ThisOutlookSession अंदर कुछ इस तरह का प्रयास करें: जब मैं एक ईमेल प्राप्त किया और कहा कि आवेदन घटना द्वारा खोले गए

Private Sub Application_NewMail() 
    Call Your_main_macro 
End Sub 

मेरे दृष्टिकोण VBA सिर्फ निकाल दिया।

संपादित करें: मैंने अभी एक हैलो वर्ल्ड msg बॉक्स का परीक्षण किया है और यह ईमेल प्राप्त होने पर application_newmail ईवेंट में कॉल होने के बाद भाग गया।

+0

मुझे डर है कि यह काम नहीं कर रहा है। मैंने मैक्रो चलाने की कोशिश की और फिर मुझे एक मेल भेज दिया, लेकिन जब तक मैंने पूरी चीज को फिर से शुरू नहीं किया, तब तक मैं अपने मैक्रो को चलाने के लिए नहीं मिला। आपको क्या लगता है कि समस्या हो सकती है? –

+0

आपके पास मेरे जवाब में कोड कहाँ था? मैंने इसे 'ThisOutlookSession' में रखा और इसे छोड़ दिया। मैक्रो चलाने की कोई ज़रूरत नहीं है जब मेल प्राप्त होता है तो यह ट्रिगर होगा। –

+0

मैंने इसे इसऑट्यूवल सत्र में भी चिपकाया था, लेकिन यह मुझे चलाने के दौरान बहुत सारी समस्याएं दे रहा है। मैं समस्या की जड़ को भी इंगित नहीं कर सकता, मेरा सब बस पूरी तरह यादृच्छिक चीजें करता है ... –

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