के बीच संचार मेरे मालिक के अनुरोध पर मैंने स्क्रिप्ट का एक छोटा सा सेट बनाया जिसका उपयोग समय-समय पर कुछ उपकरणों और प्रक्रियाओं की स्थिति की निगरानी करने के लिए किया जाता है। यह जानकारी बाद में एक अपेक्षाकृत विस्तृत VBA मॉड्यूल है कि सभी की जानकारी एकत्र करता है, सूत्रों लागू होता है का उपयोग कर संसाधित किया जाता है, पर्वतमाला सेट और रेखांकन उत्पन्न करता है, आदिसी # और वीबीए
वहाँ दो समस्याओं तथापि हैं: मैं एक शौकिया प्रोग्रामर हूँ, इसलिए मेरी VBA दिनचर्या काफी अक्षम है। यह मेरे लिए एक बड़ी समस्या नहीं है (मैं बस उठता हूं और कॉफी चलाता हूं), लेकिन अन्य उपयोगकर्ताओं के लिए यह परेशानी हो सकती है, क्योंकि तब नहीं पता कि यह इतना समय क्यों ले रहा है। मैं प्रगति का एक ग्राफिकल प्रतिनिधित्व चाहता हूँ। एप्लिकेशन की कॉन्फ़िगरेशन टेक्स्ट फ़ाइल के माध्यम से की जाती है। मैं विन्यास स्थापित करने के लिए एक सभ्य जीयूआई प्रदान करना चाहता हूं।
इसे प्राप्त करने के लिए, मैं अपने सी # WinForms एप्लिकेशन को मेरे वीबीए एप्लिकेशन के साथ संवाद करने का एक तरीका ढूंढ रहा हूं। मुझे पता है कि मेरे सी # ऐप से वीबीए रूटीन कैसे चलाया जाए, लेकिन मुझे नहीं पता कि मैं उन्हें रीयल-टाइम में कैसे कम कर सकता हूं।
यहाँ दो बातें मैं विशेष रूप से हासिल करना चाहते हैं:
- मैं पहले से ही है कि VBA दिनचर्या के अंत में सहेजा जाता है, एक लॉग फ़ाइल है। कि हालांकि मैं (बस नहीं आवेदन के अंत में) वास्तविक समय में मेरी सी # आवेदन करने के लिए लॉग/डिबगिंग-संदेश भेजने के लिए चाहते हैं, ताकि संदेशों के बजाय मेरी जीयूआई अनुप्रयोग में प्रदर्शित किया जा सकता के रूप में वे वीबीए ऐप द्वारा उत्पन्न होते हैं।
- मैं भी को VBA एप्लिकेशन मेरी जीयूआई अनुप्रयोग के लिए वास्तविक समय प्रगति के बारे में जानकारी भेजें ताकि मैं अपने जीयूआई अनुप्रयोग में एक ग्राफिकल प्रगति-बार बना सकते हैं चाहता हूँ।
मैंने पहले ही मानक आउटपुट के माध्यम से संचार करने के बारे में सोचा है। मुझे पता है कि मानक आउटपुट से सी #/नेट का उपयोग करके कैसे पढ़ा जाए, लेकिन मुझे यकीन नहीं है कि मैं वीबीए का उपयोग करके स्टडऑट स्ट्रीम में कैसे लिखूंगा।
मुझे यकीन है कि कई लोग यह इंगित करेंगे कि मैं जो हासिल करने की कोशिश कर रहा हूं वह बेवकूफ और पुरानी शैली (या पूरी तरह से अनावश्यक) है, लेकिन शौकिया प्रोग्रामर के रूप में यह मेरे लिए वास्तव में चुनौतीपूर्ण और मजेदार प्रोजेक्ट जैसा प्रतीत होता है मुझे एक या दो सिखाओ।
मैं आपको वीबीए ऐप को बेहतर बनाने में अपना समय बिताने की सलाह देता हूं। इसके अलावा, कोई कारण नहीं है कि आप प्रगति पट्टी और वीबीए में लॉगिंग भी नहीं कर सके। यदि आपको आवश्यकता नहीं है तो अतिरिक्त जटिलता क्यों पेश करें? –
ठीक है, सबसे पहले, मुझे नहीं लगता कि मैं एक तेज़ या अधिक कुशल अनुप्रयोग बनाने में सक्षम होने जा रहा हूं, क्योंकि मैंने पहले से ही वीबीए के अपने सभी ज्ञान का उपयोग किया है। जैसा कि मैंने कहा, मैं एक पूर्ण शौकिया हूँ। दूसरा: जब तक कार्यपुस्तिका वास्तव में पूरी तरह उत्पन्न नहीं होती है तब तक मैं "एक्सेल-लेयर" को अदृश्य होने के लिए चाहूंगा। तीसरा: मुझे वीबीए में फॉर्म बनाने के साथ बिल्कुल शून्य अनुभव भी है, जबकि मुझे सी # में इसके साथ कुछ अनुभव है। और चौथा: जैसा कि मैंने कहा, यह वास्तव में, वास्तव में दिलचस्प/मजेदार चीज की तरह लग रहा था। –
मुझे समझ में नहीं आता कि आप ऐसी स्थिति में कैसे पहुंचे हैं जहां आपने सी # में प्रोग्रामिंग सीखा है लेकिन वीबीए में 'अन्य' प्रोग्रामिंग? क्या यह सब एक मंच या दूसरे में चलने के लिए और अधिक समझ में नहीं आता है? मैं इसे सी # में चलने की सलाह दूंगा क्योंकि यह नई तकनीक है। हालांकि, अगर यह सिर्फ एक पूर्ण वीबीए परियोजना बनाने के लिए आपको बनाने की आवश्यकता है, तो वास्तव में वीबीए में फॉर्म काफी सरल हैं। जब आप अटक जाते हैं तो बस कोशिश करें और प्रश्न पूछें। यह वीबीए के बीच घटनाओं को बढ़ाने की कोशिश करने से बहुत आसान होगा और उन्हें डुबोएगा। नेट –