यह ट्यूटोरियल समझाएगा कि वीबीए में उपयोगकर्ता परिभाषित कार्य कैसे बनाएं।
VBA उप प्रक्रियाओं और कार्य प्रक्रियाओं से बना है। फ़ंक्शन प्रक्रियाएं एक मान लौटाती हैं और उप प्रक्रियाओं द्वारा कॉल की जा सकती हैं, या एक्सेल शीट में उपयोग की जा सकती हैं, जहां फ़ंक्शन का उत्पादन एक्सेल शीट पर वापस आ जाता है। बेशक एक्सेल में कई बिल्ट-इन फंक्शन हैं - जैसे सम फंक्शन या इफ फंक्शन। VBA में आपके द्वारा लिखी जाने वाली फ़ंक्शन प्रक्रियाओं का उपयोग बिल्ट-इन फ़ंक्शन के समान तरीके से किया जाता है और उन्हें उपयोगकर्ता परिभाषित फ़ंक्शन (UDF) के रूप में जाना जाता है।
यूडीएफ क्यों बनाएं?
आवश्यक फ़ंक्शन गुम
एक्सेल में यूडीएफ बनाने के मुख्य कारणों में से एक यह है कि कोई मौजूदा अंतर्निहित फ़ंक्शन नहीं है जो आपके लिए कार्य करेगा। वीबीए में अपना स्वयं का कार्य लिखना आमतौर पर समस्या को हल करने का सबसे प्रभावी तरीका है। नीचे दिया गया फ़ंक्शन एक मान को किलोग्राम से पाउंड में बदल देगा जहां गणना करने के लिए किलोग्राम का मान प्राप्त करने के लिए एक चर पैरामीटर (dblKilo) का उपयोग किया जा रहा है।
एक उप-दिनचर्या बदलें (मैक्रो)
आप अपने लिए कार्य को हल करने के लिए एक उप प्रक्रिया (मैक्रो) लिख सकते हैं - लेकिन उप प्रक्रियाएं एक मूल्य नहीं लौटाती हैं और वे गतिशील नहीं हैं - दूसरे शब्दों में, यदि आपके वर्कशीट में मान बदलते हैं, तो आपको फिर से चलाने की आवश्यकता होगी अपने डेटा को अपडेट करने के लिए मैक्रो में गणना के लिए मैक्रो। नीचे दी गई उप-प्रक्रिया भी हमारे किलो को पाउंड में बदल देगी, लेकिन हर बार जब डेटा A1 में बदलता है, तो आपको परिणाम को अपडेट करने के लिए मैक्रो को फिर से चलाना होगा।
एक सूत्र बदलें
आपके पास एक्सेल में वास्तव में एक जटिल सूत्र हो सकता है जिसे आपको बार-बार उपयोग करने की आवश्यकता होती है - सूत्र को वीबीए कोड में डालने से इसे पढ़ना और समझना आसान हो जाता है - साथ ही सूत्र टाइप करते समय उपयोगकर्ता त्रुटि के लिए जगह को हटा देता है।
यूडीएफ बनाना
UDF बनाने के लिए, सबसे पहले या तो अपनी Excel कार्यपुस्तिका में एक मॉड्यूल जोड़ें, या, यदि आपके पास एक व्यक्तिगत मैक्रो कार्यपुस्तिका है, तो आप या तो वहाँ एक मौजूदा मॉड्यूल का उपयोग कर सकते हैं, या एक नया मॉड्यूल जोड़ सकते हैं। ऐसा करने के लिए, आपको विजुअल बेसिक एडिटर (वीबीई) में होना चाहिए। वीबीई में जाने के लिए, दबाएं एएलटी + एफ11 या अपने रिबन के डेवलपर टैब में Visual Basic विकल्प पर क्लिक करें।
टिप: यदि आपके रिबन में डेवलपर टैब सक्षम नहीं है, तो यहां जाएं फ़ाइल, विकल्प और क्लिक करें रिबन को अनुकूलित करें. सुनिश्चित करें कि डेवलपर चेक बॉक्स चेक किया गया है और ठीक क्लिक करें।
एक नया मॉड्यूल सम्मिलित करने के लिए, उस VBA प्रोजेक्ट का चयन करें जिसमें आप मॉड्यूल सम्मिलित करना चाहते हैं (या तो उस वर्तमान पुस्तक के लिए VBA प्रोजेक्ट जिसमें आप काम कर रहे हैं, या व्यक्तिगत मैक्रो वर्कबुक), पर क्लिक करें डालने मेनू, और क्लिक करें मापांक
एक बार जब आप अपना मॉड्यूल बना लेते हैं, तो आप अपना यूडीएफ बनाना शुरू कर सकते हैं।
सभी यूडीएफ फंक्शन से शुरू होते हैं और फिर यूडीएफ के नाम से। कार्य निजी या सार्वजनिक हो सकते हैं लेकिन आम तौर पर आप चाहते हैं कि एक यूडीएफ सार्वजनिक हो ताकि वे एक्सेल में फ़ंक्शन सम्मिलित करें संवाद बॉक्स में दिखाई दें (इस आलेख में आगे एक्सेल शीट के भीतर से फ़ंक्शन का उपयोग करना देखें)। यदि आप फ़ंक्शन के सामने निजी कीवर्ड नहीं डालते हैं, तो फ़ंक्शन स्वचालित रूप से सार्वजनिक हो जाता है।
123 | फंक्शन टेस्टफंक्शन 1 (इंटी के रूप में इंटेगर) इंटीजर के रूप मेंटेस्टफंक्शन 1 = इंटए * 7अंत समारोह |
उपरोक्त फ़ंक्शन में एक ही तर्क (intA) है। आप कई तर्कों के साथ एक फ़ंक्शन बना सकते हैं
123 | फंक्शन टेस्टफंक्शन 2 (इंटा इंटीजर के रूप में, इंटबी इंटीजर के रूप में, इंटसी इंटीजर के रूप में) इंटीजर के रूप मेंटेस्टफंक्शन 2 = (इंटा * इंटबी) + इंटसीअंत समारोह |
आप वैकल्पिक तर्कों के साथ एक फ़ंक्शन भी बना सकते हैं। यदि तर्क छोड़ा गया है, तो आप फ़ंक्शन में तर्क के लिए एक डिफ़ॉल्ट मान सेट कर सकते हैं।
123 | फंक्शन टेस्टफंक्शन 3 (इंटा इंटीजर के रूप में, इंटबी इंटीजर के रूप में, वैकल्पिक इंट सी इंटीजर = 10) इंटीजर के रूप मेंटेस्टफंक्शन 3 = (इंटा * इंटबी) + इंटसीअंत समारोह |
एक्सेल शीट के भीतर से फ़ंक्शन का उपयोग करना
आपके द्वारा बनाए गए फ़ंक्शन डिफ़ॉल्ट रूप से आपकी फ़ंक्शन सूची में फ़ंक्शन सूची के उपयोगकर्ता परिभाषित अनुभाग में दिखाई देंगे।
पर क्लिक करें एफएक्स इन्सर्ट फंक्शन डायलॉग बॉक्स दिखाने के लिए।
चुनते हैं उपयोगकर्ता परिभाषित श्रेणी सूची से
उस फ़ंक्शन का चयन करें जिसकी आपको उपलब्ध से आवश्यकता है उपयोगकर्ता परिभाषित कार्य.
वैकल्पिक रूप से, जब आप एक्सेल में अपना फंक्शन लिखना शुरू करते हैं, तो फंक्शन फंक्शन्स की ड्रॉप डाउन लिस्ट में दिखना चाहिए।
अपनी एक्सेल फाइल के साथ फंक्शन्स को सेव करना
चूंकि फ़ंक्शंस VBA कोड में लिखे गए हैं, इसलिए इसका कारण यह है कि कोड को कार्यपुस्तिका में उपलब्ध होने की आवश्यकता है ताकि एक्सेल शीट के भीतर उपयोग करने के लिए उपलब्ध हो सके। आप या तो अपने कार्यों को उस कार्यपुस्तिका में सहेज सकते हैं जिसमें आप उनका उपयोग कर रहे हैं, या आप उन्हें अपनी व्यक्तिगत मैक्रो कार्यपुस्तिका में सहेज सकते हैं। आपकी व्यक्तिगत मैक्रो कार्यपुस्तिका एक छिपी हुई फ़ाइल है जो एक्सेल के खुले होने पर उपलब्ध होती है और इसलिए एक्सेल में किसी भी कार्यपुस्तिका के उपयोग के लिए उपलब्ध होती है। यह आमतौर पर तब बनाया जाता है जब आप मैक्रो रिकॉर्ड करते हैं और मैक्रो को पर्सनल मैक्रो वर्कबुक में स्टोर करने के विकल्प का चयन करते हैं।
यदि आप अपने कार्यों को उस कार्यपुस्तिका में सहेज कर रखना चाहते हैं जिस पर आप काम कर रहे हैं, तो आपको यह सुनिश्चित करना होगा कि जब आप कार्यपुस्तिका को सहेजते हैं, तो इसे 'के रूप में सहेजा जाता है।मैक्रो सक्षम कार्यपुस्तिका' या एक xlsm फ़ाइल।