विषयसूची
हम उपयोगकर्ता परिभाषित कार्यों के बारे में ट्यूटोरियल की श्रृंखला जारी रख रहे हैं। हमारे पिछले लेखों में, हम कस्टम फ़ंक्शंस से परिचित हुए और सीखा कि उन्हें कैसे बनाया और उपयोग किया जाए। इस मैनुअल में हम इन कार्यों का उपयोग करने की बारीकियों को देखेंगे और UDF और VBA मैक्रोज़ के बीच अंतर देखेंगे।
इस ट्यूटोरियल में, हम निम्नलिखित सीखेंगे:
हमें उम्मीद है कि यह लेख यूडीएफ के बारे में आपके ज्ञान को बढ़ावा देगा और आपकी एक्सेल वर्कबुक में उन्हें और भी प्रभावी ढंग से उपयोग करने में मदद करेगा।
क्या यूडीएफ और मैक्रो एक ही चीज हैं?
उपयोगकर्ता परिभाषित कार्य और वीबीए दोनों VBA संपादक का उपयोग करके मैक्रोज़ बनाए जाते हैं। उनके बीच क्या अंतर है और किसे वरीयता दी जाए?
सबसे महत्वपूर्ण अंतर यह है कि फ़ंक्शन गणना करता है, और मैक्रो कुछ क्रिया करता है। एक उपयोगकर्ता परिभाषित फ़ंक्शन, एक नियमित एक्सेल फ़ंक्शन की तरह, एक सेल में लिखा जाना चाहिए। इसके निष्पादन के परिणामस्वरूप, सेल कुछ मान लौटाता है। साथ ही, अन्य कोशिकाओं के मूल्यों के साथ-साथ वर्तमान सेल के कुछ गुणों (विशेष रूप से, स्वरूपण) को बदलना असंभव है। हालाँकि, आप सशर्त स्वरूपण सूत्रों में एक कस्टम फ़ंक्शन का उपयोग कर सकते हैं।
UDF और VBA मैक्रो अलग-अलग तरीकों से काम करते हैं। उदाहरण के लिए, जब आप Visual Basic Editor में एक UDF बनाते हैं, तो आप एक कथन Function से प्रारंभ करते हैं और End Function के साथ समाप्त होते हैं। जब आप एक मैक्रो रिकॉर्ड करते हैं, तो आप एक से शुरू करते हैंकथन उप और अंत उप के साथ समाप्त होता है।
यूडीएफ बनाने के लिए सभी विजुअल बेसिक ऑपरेटरों का उपयोग नहीं किया जा सकता है। इस कारण से, एक मैक्रो एक अधिक बहुमुखी समाधान है।
एक मैक्रो को उपयोगकर्ता द्वारा परिभाषित फ़ंक्शन के विपरीत, किसी भी तर्क को पारित करने के लिए उपयोगकर्ता की आवश्यकता नहीं होती है (न ही यह किसी भी तर्क को स्वीकार कर सकता है)।
मुद्दा यह है कि मैक्रोज़ के कुछ आदेश सेल पते या स्वरूपण तत्वों (उदाहरण के लिए, रंग) का उपयोग कर सकते हैं। यदि आप कक्षों को स्थानांतरित करते हैं, पंक्तियों और स्तंभों को जोड़ते या हटाते हैं, कक्षों के स्वरूप को बदलते हैं, तो आप अपने मैक्रोज़ को आसानी से "तोड़" सकते हैं। यह विशेष रूप से संभव है यदि आप अपनी फ़ाइल को उन सहयोगियों के साथ साझा करते हैं जो नहीं जानते कि आपका मैक्रो कैसे काम करता है।
उदाहरण के लिए, आपके पास एक फ़ाइल है जो पूरी तरह से काम कर रही मैक्रो है। यह सूत्र कक्ष A1 से A4 के प्रतिशत की गणना करता है। मैक्रो इन कोशिकाओं का रंग बदलकर पीला कर देता है। सक्रिय सेल में एक प्रतिशत प्रारूप सेट किया गया है।
यदि आप या कोई अन्य व्यक्ति एक नई पंक्ति सम्मिलित करने का निर्णय लेते हैं, तो मैक्रो A4 सेल में मान की तलाश जारी रखेगा ( आपके UDF में 4,1 पैरामीटर), विफल हो जाता है और एक त्रुटि लौटाता है:
इस मामले में, शून्य से विभाजन के कारण त्रुटि हुई (नए जोड़े में कोई मान नहीं पंक्ति)। यदि मैक्रो प्रदर्शन करता है, मान लीजिए, योग, तो आपको बस एक गलत परिणाम मिलेगा। लेकिन आपको इसके बारे में पता नहीं चलेगा।
मैक्रोज़ के विपरीत, उपयोगकर्ता परिभाषित कार्य ऐसी अप्रिय स्थिति पैदा नहीं कर सकते।
नीचे आप का प्रदर्शन देखते हैंयूडीएफ का उपयोग करके समान गणना। यहां आप वर्कशीट में कहीं भी इनपुट सेल निर्दिष्ट कर सकते हैं और इसे बदलते समय आपको किसी भी अप्रत्याशित समस्या का सामना नहीं करना पड़ेगा।
मैंने C3 में निम्नलिखित सूत्र लिखा है:
=UDF_vs_Macro(A1,A4)
फिर मैंने एक खाली पंक्ति डाली, और फ़ॉर्मूला बदल गया जैसा कि आप ऊपर स्क्रीनशॉट में देख सकते हैं।
अब हम किसी इनपुट सेल या फ़ंक्शन वाले सेल को कहीं भी ले जा सकते हैं। परिणाम हमेशा सही रहेगा।
यूडीएफ का उपयोग करने का एक अतिरिक्त लाभ यह है कि जब इनपुट सेल में मान बदलता है तो वे स्वचालित रूप से अपडेट हो जाते हैं। मैक्रोज़ का उपयोग करते समय, आपको हमेशा यह सुनिश्चित करना चाहिए कि सभी डेटा अद्यतित हैं।
इस उदाहरण को ध्यान में रखते हुए, मैं जहां भी संभव हो यूडीएफ का उपयोग करना पसंद करूंगा और केवल अन्य गैर-गणना गतिविधियों के लिए मैक्रोज़ का उपयोग करूंगा।
यूडीएफ का उपयोग करने की सीमाएं और नुकसान
मैंने पहले ही ऊपर यूडीएफ के फायदों का उल्लेख किया है। लंबी कहानी संक्षेप में, यह उन गणनाओं को कर सकती है जो मानक एक्सेल फ़ंक्शंस के साथ संभव नहीं हैं। इसके अलावा, यह लंबे और जटिल सूत्रों को सहेज सकता है और उनका उपयोग कर सकता है, उन्हें एक ही फ़ंक्शन में बदल सकता है। और आपको बार-बार जटिल सूत्र नहीं लिखने होंगे।
अब UDF की कमियों के बारे में अधिक विस्तार से बात करते हैं:
- UDF बनाने के लिए VBA के उपयोग की आवश्यकता होती है। इसके आसपास कोई रास्ता नहीं है। इसका मतलब यह है कि उपयोगकर्ता UDF को उसी तरह से रिकॉर्ड नहीं कर सकता जैसे एक्सेल मैक्रो। आपको यूडीएफ खुद बनाना होगा। हालाँकि, आप कॉपी कर सकते हैं औरपहले से रिकॉर्ड किए गए मैक्रो कोड के अंशों को अपने फ़ंक्शन में पेस्ट करें। आपको केवल कस्टम कार्यों की सीमाओं के बारे में पता होना चाहिए।
- यूडीएफ की एक और कमी यह है कि किसी भी अन्य एक्सेल फ़ंक्शन की तरह यह केवल एक मान या मूल्यों की एक सरणी को एक सेल में वापस कर सकता है। यह केवल गणनाएँ करता है, और कुछ नहीं।
- यदि आप अपने सहयोगियों के साथ अपनी कार्यपुस्तिका साझा करना चाहते हैं, तो अपने UDF को उसी फ़ाइल में सहेजना सुनिश्चित करें। अन्यथा, आपके कस्टम कार्य उनके लिए काम नहीं करेंगे।
- VBA संपादक के साथ बनाए गए कस्टम कार्य नियमित कार्यों की तुलना में धीमे होते हैं। यह बड़ी तालिकाओं में विशेष रूप से ध्यान देने योग्य है। दुर्भाग्य से, वीबीए अब तक बहुत धीमी प्रोग्रामिंग भाषा है। इसलिए, यदि आपके पास बहुत अधिक डेटा है, तो जब भी संभव हो मानक कार्यों का उपयोग करने का प्रयास करें, या LAMBDA फ़ंक्शन का उपयोग करके UDF बनाएं।
कस्टम फ़ंक्शन सीमाएं:
- UDF हैं गणना करने और एक मूल्य वापस करने के लिए डिज़ाइन किया गया। मैक्रोज़ के स्थान पर उनका उपयोग नहीं किया जा सकता है।
- वे किसी अन्य सेल (केवल सक्रिय सेल) की सामग्री को नहीं बदल सकते हैं।
- फ़ंक्शन नामों को कुछ नियमों का पालन करना चाहिए। उदाहरण के लिए, आप ऐसे नाम का उपयोग नहीं कर सकते हैं जो मूल एक्सेल फ़ंक्शन नाम या सेल पते से मेल खाता हो, जैसे कि AB123। हालांकि, प्रत्येक नए की शुरुआत में बड़े अक्षरों का उपयोग करना पसंदीदा तरीका हैशब्द (उदाहरण के लिए, GetMaxBetween)।
- एक UDF सेल को वर्कशीट के अन्य क्षेत्रों में कॉपी और पेस्ट नहीं कर सकता।
- वे सक्रिय वर्कशीट को बदल नहीं सकते।
- UDF कर सकते हैं' t सक्रिय सेल में स्वरूपण को बदलें। यदि आप विभिन्न मानों को प्रदर्शित करते हुए सेल के स्वरूपण को बदलना चाहते हैं, तो आपको सशर्त स्वरूपण का उपयोग करना चाहिए। .
- मैक्रो रिकॉर्डर का उपयोग करके उपयोगकर्ता-परिभाषित फ़ंक्शन नहीं बनाया जा सकता है।
- फ़ंक्शन डेवलपर > मैक्रोज़ संवाद।
- आपके कार्य संवाद बॉक्स में दिखाई देंगे ( > फ़ंक्शन डालें ) और कार्यों की सूची में केवल तभी दिखाई देंगे जब उन्हें सार्वजनिक<7 के रूप में घोषित किया गया हो> (यह डिफ़ॉल्ट है, जब तक कि अन्यथा नोट न किया गया हो)।
- निजी के रूप में घोषित कोई भी कार्य फीचर सूची में दिखाई नहीं देगा।
काफी धीमा संचालन , साथ ही उपयोग में कुछ प्रतिबंध, आपको यह सोचने पर मजबूर कर सकते हैं: "इन कस्टम फ़ंक्शंस का क्या उपयोग है?" यदि आप यूडीएफ को ठीक से बनाना और उपयोग करना सीखते हैं, तो आप अपने कार्यों की लाइब्रेरी लिख सकते हैं। यह एक्सेल में डेटा के साथ काम करने की आपकी क्षमता को बहुत बढ़ा देगा।
मेरे लिए, कस्टम फ़ंक्शंस बहुत समय बचाने वाले हैं। और आपका क्या हाल है? क्या आपने पहले ही अपना यूडीएफ बनाने की कोशिश की है? क्या आपको यह पसंद आयाबुनियादी एक्सेल कार्यों से बेहतर? टिप्पणियों में इसकी चर्चा करें :)