VBA में उपयोगकर्ता परिभाषित कार्य - UDF कैसे बनाएं? (उदाहरण)

एक्सेल VBA उपयोगकर्ता परिभाषित समारोह (UDF)

एक्सेल में काम को गति देने के लिए Microsoft कई अंतर्निहित कार्यों के साथ हमारी सेवा करता है। हालाँकि VBA कोडिंग का उपयोग करके हम अपने स्वयं के कार्य बना सकते हैं और उन कार्यों को तकनीकी रूप से "उपयोगकर्ता-परिभाषित कार्य" (UDF) कहा जाता है । उन्हें एक्सेल VBA में "कस्टम फ़ंक्शंस" भी कहा जाता है।

किसी भी सूत्र को वर्कशीट से कोड के एक टुकड़े के साथ एक्सेस किया जा सकता है जिसे यूडीएफ कहा जाता है। सरल शब्दों में, कोई भी फार्मूला जो बिल्ट-इन नहीं है, लेकिन एक्सेल में उपलब्ध है, यूजर डिफाइंड फंक्शंस कहलाता है।

User-Defined Functions कैसे बनाएँ?

भले ही UDF हमारे मॉड्यूल का हिस्सा है, लेकिन वे VBA में हमारे नियमित सबरूटीन का हिस्सा नहीं हैं। इसे VBA में फ़ंक्शन प्रक्रिया कहा जाता है। जैसे हम SUB शब्द के साथ मैक्रो कोडिंग कैसे शुरू करते हैं, हमें "फ़ंक्शन" शब्द का उपयोग करके इसे शुरू करना होगा। सब प्रोसेस स्टार्ट और एंड है, इसी तरह फंक्शन प्रोसीजर भी स्टार्ट एंड एंड है।

उदाहरण # 1 - एक साधारण यूडीएफ योग बनाएं

हम दो संख्याओं को जोड़कर अपना स्वयं का SUM फ़ंक्शन एक्सेल में बनाएंगे।

  • कोडिंग शुरू करने के लिए, मॉड्यूल में से एक में "फ़ंक्शन" शब्द शुरू करें।
  • जैसे हम मैक्रो को कैसे नाम देते हैं, वैसे ही हमें अपने फंक्शन को भी नाम देना होगा। इस नाम का उपयोग सूत्र नाम के रूप में किया जाता है।

सबरूटीन के विपरीत, हम केवल एक प्रक्रिया बनाने के लिए एंट्री नहीं मार सकते हैं, लेकिन हमें यहाँ तर्कों का उल्लेख करने की आवश्यकता है।

उदाहरण के लिए, वर्कशीट फ़ंक्शन SUM के नीचे के सिंटैक्स को देखें।

नंबर 1, नंबर 2 फ़ंक्शन SUM के तर्क हैं।

  • इसी तरह, हमें अपने तर्कों का उल्लेख करने की आवश्यकता है।

यहाँ मैंने "एक्स के रूप में पूर्णांक" और "वाई के रूप में पूर्णांक" के रूप में तर्कों की घोषणा की है। चूंकि हम संख्यात्मक मान जोड़ते हैं, इसलिए हमें केवल संख्यात्मक डेटा प्रकार के रूप में डेटा प्रकार निर्दिष्ट करना होगा।

दलीलें घोषित करने के बाद, मैंने इंटेगर का रिटर्न प्रकार भी सौंपा है, क्योंकि फ़ंक्शन "OurSum" द्वारा दिया गया परिणाम भी एक संख्यात्मक मूल्य है।

  • अब फ़ंक्शन के अंदर, हमें उस सूत्र का उल्लेख करना होगा जो हम उपयोग करने जा रहे हैं। यहां हमें फ़ंक्शन को प्रारंभ करने के लिए उपयोग करने की आवश्यकता है।

हमने सूत्र नाम का उल्लेख किया " OurSum " को x और y को जोड़ना चाहिए।

  • ठीक है, कोड को सहेजें और वर्कशीट पर जाएं।
  • मैंने यहाँ कुछ संख्याएँ दर्ज की हैं। बराबर साइन खोलें और OurSum टाइप करना शुरू करें। आप यहाँ दिखाई देने वाले सूत्र नाम को देख सकते हैं।
  • जैसे हम कोशिकाओं का चयन कैसे करते हैं इसी तरह दो कोशिकाओं को अलग से चुनें
  • दो कोशिकाओं का चयन करने के बाद, परिणाम दर्ज करने के लिए कुंजी दर्ज करें।

तो यह हमारे नियमित SUM फ़ंक्शन के समान ही कार्य करता है।

  • ठीक है, अब मैं नंबर बदल दूंगा।
  • अब फिर से, हम हमारे द्वारा बनाए गए फ़ंक्शन को लागू करेंगे।

ओह !!! हमें पहली सेल को छोड़कर त्रुटि मान मिले।

आप सोच रहे होंगे कि हमें त्रुटि क्यों मिली।

यदि आप सेल A2 और B2 का अवलोकन करते हैं, तो हमारे पास मान 48170 और 21732 हैं। चूंकि हमने डेटा प्रकार को पूर्णांक के रूप में असाइन किया है, इसलिए यह 32767 से अधिक कोई संख्या नहीं रख सकता है। यही कारण है कि हमें #NUM के रूप में एक्सेल त्रुटि मिली है!

अब मैं संख्या जोड़ूंगा जो 32767 से कम है।

उपरोक्त छवि में, सभी संख्या पूर्णांक संख्याएं हैं, अर्थात, 32767 से कम।

पहली सेल में, हमें नतीजे मिले। लेकिन दूसरी सेल, यानी C2 सेल में, हमें #VALUE के रूप में त्रुटि मान मिला!।

भले ही दोनों संख्या 32767 से कम हो, फिर भी हमें त्रुटि मिली।

ऐसा इसलिए है क्योंकि हमने अंतिम परिणाम को भी पूर्णांक घोषित किया है।

इसलिए जब हम 16000 और 17229 जोड़ते हैं, तो हमें 33229 जैसा मान मिलेगा, जो पूर्णांक डेटा प्रकार की सीमा 32767 से अधिक है। इसलिए अंतिम परिणाम एक त्रुटि मान है।

उदाहरण # 2 - तार्किक मूल्यों का परीक्षण करने के लिए एक फ़ंक्शन बनाएं

हम तार्किक मूल्यों का परीक्षण करने के लिए एक और फ़ंक्शन बनाएंगे। हमें एक फ़ंक्शन की आवश्यकता है जो "अच्छा" लौटाता है यदि संख्या> = 60 है, और हमें "बुरा" के रूप में परिणाम की आवश्यकता है यदि संख्या = = 50 है।

चरण 1: कार्य प्रक्रिया शुरू करें और प्रक्रिया को एक नाम दें।

चरण 2: टेस्टस्कोर के रूप में तर्क को पूर्णांक के रूप में दें।

चरण 3: हमारा अंतिम परिणाम या तो "अच्छा" या "खराब" होना चाहिए, इसलिए परिणाम स्ट्रिंग में होना चाहिए।

चरण 4: सबसे पहले, हमें यह परीक्षण करने की आवश्यकता है कि स्कोर> = 60 है या नहीं। परीक्षण करने के लिए IF स्थिति का उपयोग करें।

चरण 5: यदि परीक्षण स्कोर> = 60 है, तो हमें परिणाम को "अच्छा" के रूप में वापस करने की आवश्यकता है। तो TestResult = "अच्छा है।"

चरण 6: यदि परीक्षण स्कोर 60 से कम है, तो फ़ंक्शन परिणाम "खराब" होना चाहिए।

ठीक है, हम कर रहे हैं।

  • कोड सहेजें और वर्कशीट पर जाएं।

मैंने टेस्ट स्कोर के रूप में यहां कुछ नंबर दर्ज किए हैं।

  • परिणाम आने के लिए हमने जो फ़ंक्शन बनाया है, उसे लागू करें।
  • सेल और हिट एंटर चुनें।

यह वही है जो यूडीएफ के बारे में है।

दिलचस्प लेख...