VBA कैलेंडर नियुक्ति नहीं भेज सकता



calendar outlook-vba (1)

जब मैं मैन्युअल रूप से एक कैलेंडर अनुस्मारक / नियुक्ति करता हूं, तो मैं "सहभागीों को आमंत्रित कर" पर क्लिक कर लोगों को आमंत्रित कर सकता हूं और फिर "भेजें" पर क्लिक कर सकता हूं और सभी को उस कैलेंडर अनुस्मारक / नियुक्ति प्राप्त होगी

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

क्या कोई मेरे लिए इस पर कुछ प्रकाश डाल सकता है?

Private Function CreateAppointment(SubjectStr As String, BodyStr As String, StartTime As Date, EndTime As Date, AllDay As Boolean)
    Dim olApp As Outlook.Application
    Dim Appt As Outlook.AppointmentItem
    ' Only create the reminder if there's no duplicate
    If (CheckForDuplicates(SubjectStr) = False) Then
        Set olApp = CreateObject("Outlook.Application")
        Set Appt = olApp.CreateItem(olAppointmentItem)
        Appt.Recipients.Add ("John Doe")
        Appt.Recipients.ResolveAll
        Appt.Subject = SubjectStr
        Appt.Start = StartTime
        Appt.End = EndTime
        Appt.AllDayEvent = AllDay
        Appt.Body = BodyStr
        Appt.ReminderSet = True
        Appt.Save
        Appt.Send
    End If
    Set Appt = Nothing
    Set olApp = Nothing
End Function

एक बैठक एक विशिष्ट प्रकार की नियुक्ति है - एक नियुक्ति जिसे अन्य लोगों को आमंत्रित किया जाता है

नियुक्ति के लिए एक मीटिंग बनाने के लिए, आपको केवल अटेंडीज़ को आमंत्रित करने से अधिक करने की आवश्यकता है आपको 'बैठक' के लिए स्थिति निर्धारित करने की आवश्यकता है इसे अपने कोड में जोड़ें:

Appt.MeetingStatus = olMeeting

यह भी ध्यान रखें कि आप एक अनुस्मारक सेट करते हैं, लेकिन रिमाइंडर का समय निर्धारित नहीं किया था। उदाहरण के लिए,

Appt.ReminderMinutesBeforeStart = 30

अंत में, यदि यह Outlook VBA है, तो आप CreateObject का उपयोग क्यों कर रहे हैं? आप अपने सभी वस्तुओं को प्राप्त करने के लिए देशी एप्लिकेशन ऑब्जेक्ट का उपयोग करना चाहिए।

अर्थात् के बजाय

Set olApp = CreateObject("Outlook.Application")

आप उपयोग करेंगे

Set olApp = Outlook.Application

HTH