मुझे लगता है कि आप वीबीई (विजुअल बेसिक एडिटर) को स्वचालित करके ऐसा करने का प्रयास कर सकते हैं।
आवश्यकता:
आप Excel/File/Options/Trust Center/Trust Center settings
के पास जाकर विकल्प Trust access to the VBA project object model
जांच करने की आवश्यकता (सुरक्षा कारणों से यह डिफ़ॉल्ट रूप से निष्क्रिय है, और यदि आप इसे जांच नहीं करते नीचे कोड चलाने के समय को बढ़ा देंगे त्रुटि 1004 programmatic access to visual basic project is not trusted
)। जाहिर है, आपको केवल एक बार ऐसा करने की आवश्यकता है (प्रत्येक कंप्यूटर में आप स्वचालित संकलन को निश्चित रूप से निष्पादित करना चाहते हैं)।
कोडन:
आपका कमांड बार अनुदेश (यानी "संकलित VBA प्रोजेक्ट") एक्सेल आवेदन की VBE ऑब्जेक्ट के अंदर है, विशेष रूप से आदेश सलाखों में:
Dim objVBECommandBar As Object
Set objVBECommandBar = Application.VBE.CommandBars
वस्तु होगा अब विजुअल बेसिक एडिटर की संपूर्ण कमांड बार शामिल है। विशेष रूप से, आप आईडी बटन "578" की तलाश करते हैं, जो वास्तव में "संकलन वीबीए प्रोजेक्ट" है (आप चर पर एक वॉचर डाल सकते हैं और सभी ब्राउज़ कर सकते हैं स्थानीय विंडो में, आप अन्य खोजना चाहेंगे आदेशों)। इसलिए, संक्षेप में:
Set compileMe = objVBECommandBar.FindControl(Type:=msoControlButton, ID:=578)
compileMe.Execute
यह परियोजना के संकलन की अनुमति देगा। जैसा कि आप पूछ रहे थे, आप इसे इस वर्कबुक ओपन इवेंट में डाल दें:
Private Sub ThisWorkbook_Open()
Set compileMe = objVBECommandBar.FindControl(Type:=msoControlButton, ID:=578)
compileMe.Execute 'the project should hence be compiled
End Sub
स्रोत
2015-01-17 18:11:15
यदि यह नहीं है, तो क्या किसी को पता है कि संकलित फाइलें कहाँ संग्रहित की जाती हैं? मैं सोच रहा हूं कि नई कार्यपुस्तिका को संकलित करने के बजाय, क्या यह सभी उपयोगकर्ताओं को इन संकलित फ़ाइलों को भेजना संभव नहीं होगा और इन फ़ाइलों को अस्थायी निर्देशिका में संग्रहीत करने के लिए निर्देश प्रदान करना संभव होगा? – Examorph
धन्यवाद मैटे, यह वास्तव में जरूरी नहीं है, बस कुछ ऐसी चीजें जो मुझे पहले की परियोजना में शामिल कई कार्यपुस्तिकाओं में बहुत परेशानी थीं। मैं आपका समाधान देखने के लिए तत्पर हूं। – Examorph
वहां आप जाते हैं, यह जवाब में है। मैंने अभी अपनी परियोजनाओं में से एक पर परीक्षण किया है और ऐसा लगता है कि यह ठीक काम करता है। संभावित डाउनसाइड्स को इंगित करने में संकोच न करें, यह पहली बार है जब मैं इस तरह कुछ भी कोशिश करता हूं। –