2009-12-21 10 views
6

यूडीएफ, मैक्रो, एड-इन, ऑटोमेशन एड-इन, एक्सएलएल, या वीएसटीओ के बीच एक्सेल प्रोग्रामिंग में अंतर क्या हैं।
मुझे किसके लिए उपयोग करना चाहिए और किस परिस्थितियों में?एक्सेल प्रोग्रामिंग पद्धतियां

उत्तर

4

एक्सेल 2003 और इससे पहले के लिए वीबीए का उपयोग करें (हालांकि यदि आप चाहें तो 2007 में इसका उपयोग कर सकते हैं)।

VSTO Excel 2003 या 2007

वर्ष एक्सेल 4.0 मैक्रो भाषा निश्चित रूप से अब और नहीं किया जाना चाहिए, वे अक्षम करने भागों रखने के लिए और कार्यक्षमता गायब है के लिए है। पुराने मैक्रोज़ को प्राप्त करने के लिए हमें अपनी सभी स्प्रेडशीट को फिर से लिखना होगा।

मैक्रोज़ वीबीए कोड के लिए एक और नाम भी हैं।

एक ऐड-इन केवल एक और एक्सेल कार्यपुस्तिका है जिसमें कोड है (वीबीए की तरह), ताकि आप विभिन्न पुस्तकों में कोड का उपयोग कर सकें और कोड को सीधे उपयोगकर्ता पुस्तक से बाहर रख सकें।

एक यूडीएफ केवल वीबीए में लिखा गया एक फ़ंक्शन है जिसे स्प्रेडशीट में किसी सेल में वर्कशीट फ़ंक्शन के रूप में जाना जाता है (इसे एड-इन में भी संग्रहीत किया जा सकता है)।

+2

तीन छोटे नोट्स, चूंकि ओपी हमें सेब की तुलना टोकरी से करने के लिए कह रहा है: (1) शब्द "मैक्रो" अक्सर वीबीए कोड का वर्णन करने के लिए प्रयोग किया जाता है, न केवल पुरानी एक्सेल 4.0 मैक्रो भाषा। "जंगली में" किसी भी एक्सेल 4.0 मैक्रो कोड को देखना दुर्लभ है। (2) एड-इन्स आमतौर पर वीबीए में भी लिखे जाते हैं। (3) यूडीएफ को ऐड-इन्स के साथ-साथ स्प्रेडशीट में भी कॉल किया जा सकता है। – richardtallent

+0

धन्यवाद, मैंने उन सभी को संपादित किया। –

+0

Excel 2007 के लिए VSTO कैसा है? मैंने एक्सेल 2003 पर वीएसटीओ के साथ बहुत सी परियोजनाएं की हैं। – Mathias

1

लांस के आपके प्रश्नों की अच्छी परिभाषाएं हैं। जब वीबीए बनाम वीएसटीओ बनाते हैं, तो इसका उपयोग करने के मामले में - यदि आपको .NET Framework का उपयोग करने की आवश्यकता है तो VSTO के साथ जाएं। उदाहरण के लिए, मैं एक स्प्रेडशीट सीखने के साथ एक वीबीनेट प्रोग्राम इंटरफ़ेस बनाना चाहता था VSTO जाने का तरीका होगा (उस और वीबीए में vb.net की तरह array.sort नहीं है जो मुझे पागल बनाता है)। हालांकि अगर आप निफ्टी स्प्रेडशीट बना रहे हैं जो आपके अंतिम उपयोगकर्ताओं (फॉर्मूला, चार्ट इत्यादि) के लिए कुछ अच्छी चीजें करेगा तो स्प्रेडशीट के भीतर कुछ वीबीए कोड को चाबुक करें। यह सब इस बात पर निर्भर करता है कि आपको क्या करना है। नौकरी के लिए सबसे अच्छा उपकरण।

VSTO बनाम VBA:
VBA (अनुप्रयोगों के लिए दृश्य मूल) "क्लासिक" जिस तरह से कार्यालय स्वचालन लिखना है

8

मैं समूह की कोशिश करता हूँ/तत्वों तुम उल्लेख के कुछ विरोध करते हैं। एक्सेल में एक विकास इंटरफ़ेस है जिसे आप मैक्रोज़ और यूडीएफ लिखने के लिए कार्यालय से आग लग सकते हैं, और जो लगभग 10 वर्षों तक नहीं बदला है। प्लस तरफ, तैनाती मामूली है, और वीबीए मैक्रो रिकॉर्डिंग जैसी अच्छी सुविधाएं प्रदान करता है, जो कोड में आपके कार्यों को रिकॉर्ड करता है, और ऑब्जेक्ट मॉडल को समझने का एक अच्छा तरीका प्रदान करता है।
वीएसटीओ हाल ही में आया था, और आपको .NET (COM का उपयोग करता है) का उपयोग करके कार्यालय स्वचालित करने की अनुमति देता है। आप सभी .NET और विजुअल स्टूडियो का लाभ उठा सकते हैं (उदा: डब्ल्यूपीएफ फॉर्म जोड़ें), जो बहुत लचीलापन देता है लेकिन तैनाती अधिक जटिल है।
यूडीएफ बनाम मैक्रो बनाम एड-इन
उपयोगकर्ता परिभाषित फ़ंक्शंस कस्टम-निर्मित विधियां हैं जो आपकी कार्यपुस्तिका से जुड़ी रहेंगी; एक बार "अंतर्निहित" एक्सेल फ़ंक्शंस के समान स्थिति प्राप्त करने के बाद: आप उन्हें वर्कशीट्स से कॉल कर सकते हैं जैसे = MyFunction()
मैक्रोज़ प्रक्रियाएं हैं जो आपकी कार्यपुस्तिका से जुड़ी रहेंगी। उन्हें सीधे उपयोगकर्ता द्वारा कहा जा सकता है, या घटनाओं से जुड़ा जा सकता है (उदा: जब वर्कशीट का चयन किया जाता है, तो ऐसा करें)।
ऐड-इन्स किसी विशिष्ट दस्तावेज़ से जुड़े नहीं हैं, बल्कि एप्लिकेशन के लिए भी संलग्न नहीं हैं। आम तौर पर एक मैक्रो या यूडीएफ कार्यपुस्तिका से जुड़ा होता है: जब आप दस्तावेज़ खोलते हैं, तो कोड आपके लिए उपलब्ध हो जाता है, और जब आप दस्तावेज़ देते हैं, तो कोड भी कॉपी किया जाता है। इसके विपरीत, ऐड-इन्स एप्लिकेशन से जुड़ा हुआ है: जिस क्षण आप एक्सेल लॉन्च करते हैं, ऐड-इन आपके लिए उपलब्ध हो जाता है। सॉल्वर जैसे उपकरण एक ऐड-इन हैं। ध्यान दें कि ऐड-इन्स या तो वीबीए में या वीएसटीओ का उपयोग करके लिखा जा सकता है (आप .NET में यूडीएफ भी लिख सकते हैं, लेकिन यह अटूट है)।

ऐड-इन बनाम मैक्रो/यूडीएफ का उपयोग करने के लिए: यदि आपकी कार्यक्षमता किसी भी कार्यपुस्तिका से पहुंच योग्य हो तो एक ऐड-इन लिखें।
वीएसटीओ या कोई वीएसटीओ: यह बहस का विषय है। अधिकांश लोग जो "क्लासिक" वीबीए स्वचालन से परिचित हैं, वे VSTO को बहुत पसंद नहीं करते हैं, क्योंकि सीखने की अवस्था थोड़ा खड़ी है। यदि आपको .NET के साथ काम करने के लिए उपयोग किया जाता है, तो यह थोड़ा मुद्दा नहीं होना चाहिए - लेकिन वीएसटीओ कुछ सामान्य "नेट" की तुलना में कुछ हद तक क्विर्की है। नेट एप्स डेवलपमेंट।
ध्यान दें कि यदि आप VSTO का उपयोग करते हैं, तो आपका कोड उपयोगकर्ता द्वारा संपादित नहीं किया जा सकता है। यह तर्कसंगत वांछनीय है, लेकिन साथ ही, एक्सेल पावर-उपयोगकर्ता आमतौर पर वीबीए और मैक्रोज़ का उपयोग कैसे करते हैं, और कोड को ट्विक करने में सक्षम होने की उम्मीद करते हैं। इससे दिलचस्प चर्चा हो सकती है।
व्यक्तिगत रूप से, मैं आम तौर पर ऐड-इन्स के लिए वीएसटीओ का उपयोग करता हूं, और जैसे ही मैं देखता हूं कि बहुत सारे तर्क/प्रक्रियात्मक कोड वीबीए में मैक्रोज़ में जा रहे हैं। वीएसटीओ मुझे विजुअल स्टूडियो में टेस्टेबल कोड लिखने की क्षमता देता है, और भारी गणना शामिल होने पर उच्च प्रदर्शन कोड भी देता है। वीएसटीओ का उपयोग करने का दूसरा कारण कार्यालय को अनुकूलित करने के लिए डब्ल्यूपीएफ का लाभ उठाना है। चीजों की VBA ओर से

+0

क्या आप एक लिंक दे सकते हैं जो वास्तव में WPF है। मैं इसे समझने की कोशिश कर रहा हूं लेकिन इसे प्राप्त नहीं कर रहा हूं। इसके लिए क्या अच्छा है? इसके और एक फॉर्म आवेदन के बीच क्या अंतर है? – Jon49

+0

डब्ल्यूपीएफ का उद्देश्य Winforms के समान है: यह आपको उपयोगकर्ता के लिए फॉर्म बनाने का एक तरीका देता है। रूपों पर डब्ल्यूपीएफ के लाभ (दूसरों के बीच) हैं कि यह अधिक लचीला है, और कार्यक्षमता और डिज़ाइन अलग हैं। उदाहरण के लिए, आप नियंत्रणों को किसी भी तरह से बना सकते हैं, जिसे आप अपने नियंत्रण बनाना चाहते हैं, जो यूआई के साथ आप क्या कर सकते हैं, इस पर बहुत अधिक आजादी देता है - और एक बार आपका यूआई काम करता है, एक डिजाइनर इसे सुंदर दिख सकता है। – Mathias

1

कुछ और अंक:

ऐड-में - अपने गैर तुच्छ कोड के सभी एक ऐड-इन में जाना चाहिए। मेरे लिए एक सामान्य प्रोजेक्ट में एक ऐड-इन होता है जिसमें डेटा को पकड़ने के लिए सभी डेटा, डेटा स्टोर (डेटाबेस, टेक्स्ट फ़ाइल, एक्सेल वर्कबुक) और प्रस्तुति परत या उपयोगकर्ता इंटरफ़ेस के रूप में एक या अधिक टेम्पलेट शामिल होते हैं। आपको ऐड-इन का उपयोग करने की आवश्यकता नहीं है; कोड आपके टेम्पलेट्स के भीतर मॉड्यूल में ठीक काम करेगा। हालांकि, अपनी परियोजना परतों को अलग रखने के लिए यह एक अच्छा अभ्यास है। कोड एक ऐड-इन में जाता है, डेटा डेटा स्टोर में जाता है, प्रेजेंटेशन टुकड़े वर्कबुक या वर्कबुक में जाते हैं। इस तरह, आप अन्य दो परतों को प्रभावित किए बिना अपना कोड बदल सकते हैं। या आप मौजूदा डेटा को प्रभावित किए बिना एक प्रेजेंटेशन टेम्पलेट बदल सकते हैं।

यूडीएफ - यह फ़ंक्शन कीवर्ड के साथ घोषित किया गया है। यदि आपको एक मान (या सरणी या ऑब्जेक्ट इंस्टेंस इत्यादि) वापस करने की आवश्यकता है तो फ़ंक्शन का उपयोग करें। कस्टम वर्कशीट फ़ंक्शंस यूडीएफ हैं क्योंकि वे केवल सेल पर एक मान वापस करते हैं। वे मूल्य संपत्ति को छोड़कर सेल के किसी भी गुण को नहीं बदलते हैं। आप सीमाओं या फ़ॉन्ट्स को लागू नहीं कर सकते हैं, उदाहरण के लिए, फ़ंक्शन के माध्यम से।

मैक्रो - एक प्रक्रिया भी कहा जाता है, उन्हें उप कीवर्ड के साथ घोषित किया जाता है। एक प्रक्रिया का उपयोग करें यदि आपको मूल्य वापस करने के अलावा कुछ और करने की आवश्यकता है, जैसे कि आपको एक्सेल ऑब्जेक्ट मॉडल के हिस्सों में हेरफेर करने की आवश्यकता है।