VBA कार्य - VBA का उपयोग करके कस्टम फ़ंक्शन बनाने के लिए गाइड

एक्सेल VBA फ़ंक्शंस

हमने देखा है कि हम VBA में वर्कशीट फ़ंक्शंस का उपयोग कर सकते हैं, अर्थात Application.worksheet विधि का उपयोग करके VBA कोडिंग में एक्सेल वर्कशीट के कार्य, लेकिन हम एक्सेल में VBA के किसी फ़ंक्शन का उपयोग कैसे करते हैं, इस तरह के कार्यों को उपयोगकर्ता-परिभाषित फ़ंक्शन कहा जाता है। जब कोई उपयोगकर्ता VBA में कोई फ़ंक्शन बनाता है तो उसका उपयोग एक्सेल वर्कशीट में भी किया जा सकता है।

हालाँकि, डेटा में हेरफेर करने के लिए हमारे पास कई कार्य हैं, कभी-कभी हमें टूल में कुछ अनुकूलन करने की आवश्यकता होती है ताकि हम अपना समय बचा सकें क्योंकि हम कुछ कार्यों को बार-बार करते हैं। हमने SUM, COUNTIF, SUMIF, COUNTIFS, VLOOKUP, INDEX, MATCH जैसे एक्सेल आदि में पूर्वनिर्धारित कार्य किए हैं, लेकिन हम दैनिक आधार पर कुछ कार्य करते हैं जिसके लिए Excel में एक भी कमांड या फ़ंक्शन उपलब्ध नहीं है, फिर उपयोग करके VBA, हम कस्टम फ़ंक्शन बना सकते हैं जिसे उपयोगकर्ता निर्धारित फ़ंक्शंस (UDF) कहा जाता है।

VBA फ़ंक्शंस क्या करते हैं?

  • वे कुछ गणनाएँ करते हैं; तथा
  • मान लौटाएं

VBA में, फ़ंक्शन को परिभाषित करते समय, हम मापदंडों और उनके डेटा प्रकार को निर्दिष्ट करने के लिए निम्नलिखित सिंटैक्स का उपयोग करते हैं।

डेटा प्रकार यहां वह डेटा प्रकार है जिसे वैरिएबल धारण करेगा। यह किसी भी मूल्य (किसी भी वर्ग का डेटा प्रकार या वस्तु) को पकड़ सकता है।

हम पीरियड या डॉट (।) सिंबल का उपयोग करके ऑब्जेक्ट को उसकी संपत्ति या विधि से जोड़ सकते हैं।

VBA का उपयोग करके कस्टम फ़ंक्शंस कैसे बनाएं?

उदाहरण

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

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

यही कारण है कि हमें उपयोगकर्ता-परिभाषित फ़ंक्शन बनाने की आवश्यकता है।

चरण 1: कुल निशान का पता लगाएं

सबसे पहले, हम एक्सेल में SUM फ़ंक्शन का उपयोग करके कुल अंक प्राप्त करेंगे।

परिणाम प्राप्त करने के लिए Enter दबाएँ।

फॉर्मूला को बाकी कोशिकाओं तक खींचें।

अब रिजल्ट (उत्तीर्ण, अनुत्तीर्ण, या आवश्यक दोहराने) का पता लगाने के लिए, स्कूल द्वारा निर्धारित मानदंड है।

  • यदि छात्र ने 500 में से कुल अंकों के रूप में 200 से अधिक या बराबर स्कोर किया है और छात्र किसी भी विषय में फेल नहीं हुआ है (प्रत्येक विषय में 32 से अधिक अंक प्राप्त किए हैं), तो एक छात्र उत्तीर्ण होता है।
  • यदि छात्र ने 200 से अधिक या उसके बराबर स्कोर किया है, लेकिन छात्र 1 या 2 विषयों में असफल है, तो एक छात्र को उन विषयों में "आवश्यक दोहराने" मिला है,
  • यदि छात्र ने 200 से कम स्कोर किया है या 3 या उससे अधिक विषयों में फेल है, तो छात्र असफल है।
चरण 2: परिणाम परिणाम बनाएं

'ResultOfStudent' नामक एक फंक्शन बनाने के लिए, हमें नीचे दिए गए किसी भी तरीके का उपयोग करके "Visual Basic Editor" खोलने की आवश्यकता है:

  • डेवलपर टैब एक्सेल का उपयोग करके।

यदि MS Excel में डेवलपर टैब उपलब्ध नहीं है, तो हम निम्न चरणों का उपयोग करके प्राप्त कर सकते हैं:

  • फिर रिबन पर कहीं भी राइट-क्लिक करें, 'एक्सेल में रिबन को कस्टमाइज़ करें' चुनें

जब हम इस कमांड को चुनते हैं, तो "एक्सेल विकल्प" डायलॉग बॉक्स खुलता है।

  • हमें टैब प्राप्त करने के लिए "डेवलपर" के लिए बॉक्स को जांचना होगा ।
  • शॉर्टकट कुंजी का उपयोग करके, अर्थात, Alt + F11।
  • जब हम VBA संपादक खोलते हैं, तो हमें इन्सर्ट मेनू में जाकर मॉड्यूल को सम्मिलित करना होगा।
  • हमें निम्नलिखित कोड को मॉड्यूल में पेस्ट करना होगा।
Function ResultOfStudents(Marks As Range) As String Dim mycell As Range Dim Total As Integer Dim CountOfFailedSubject As Integer For Each mycell In Marks Total = Total + mycell.Value If mycell.Value = 200 And CountOfFailedSubject 0 Then ResultOfStudents = "Essential Repeat" ElseIf Total>= 200 And CountOfFailedSubject = 0 Then ResultOfStudents = "Passed" Else ResultOfStudents = "Failed" End If End Function

The above function returns the result for a student.

We need to understand how this code is working.

The first statement, ‘Function ResultOfStudents(Marks As Range) As String,’ declares a function named ‘ResultOfStudents’ that will accept a range as input for marks and will return the result as a string.

Dim mycell As Range Dim Total As Integer Dim CountOfFailedSubject As Integer

These three statements declare variables, i.e.,

  • ‘myCell’ as a Range,
  • ‘Total’ as Integer (to store total marks scored by a student),
  • ‘CountOfFailedSubject’ as integer (to store the number of subjects in which a student has failed).
For Each mycell In Marks Total = Total + mycell.Value If mycell.Value < 33 Then CountOfFailedSubject = CountOfFailedSubject + 1 End If Next mycell

This code checks for every cell in the ‘Marks’ range and adds the value of every cell in the ‘Total’ variable, and if the value of the cell is less than 33, then adds 1 to the ‘CountOfFailedSubject’ variable.

If Total>= 200 And CountOfFailedSubject 0 Then ResultOfStudents = "Essential Repeat" ElseIf Total>= 200 And CountOfFailedSubject = 0 Then ResultOfStudents = "Passed" Else ResultOfStudents = "Failed" End If

This code checks the value of ‘Total’ and ‘CountOfFailedSubject’ and passes the Essential Report,’ ‘Passed,’ or ‘Failed’ accordingly to the ‘ResultOfStudents.’

Step 3: Apply ResultOfStudents Function to Get Result

ResultOfStudents function takes marks, i.e., selection of 5 marks scored by the student.

Now Select the Range of cells, i.e., B2: F2.

Drag the Formula to the rest of the Cells.

Step 4: Create ‘GradeForStudent’ Function to get Grades

Now to find out the grade for the student, we will create one more function named ‘GradeForStudent.’

The code would be:

Function GradeForStudent(TotalMarks As Integer, Result As String) As String If TotalMarks> 440 And TotalMarks 380 And TotalMarks 320 And TotalMarks 260 And TotalMarks = 200 And TotalMarks <= 260 And (Result = "Passed" Or Result = "Essential Repeat") Then GradeForStudent = "E" ElseIf TotalMarks < 200 Or Result = "Failed" Then GradeForStudent = "F" End If End Function

This function assigns a ‘Grade’ to the student based on the ‘Total Marks’ and ‘Result.’

We just need to write the formula and open the brackets in Cell H2 and pressing Ctrl+Shift+A to find out about the arguments.

ग्रेडफोरस्टूडेंट फ़ंक्शन कुल अंकों (अंकों का योग) और ग्रेड की गणना करने के तर्क के रूप में छात्र का परिणाम लेता है।

अब संबंधित कोशिकाओं का चयन करें, अर्थात, G2, H2।

अब हमें फॉर्मूलों को कॉपी करने के लिए कोशिकाओं का चयन करने के बाद सिर्फ Ctrl + D प्रेस करना होगा।

हम लाल पृष्ठभूमि रंग के साथ 33 से कम के मूल्यों को उजागर कर सकते हैं ताकि हम उन विषयों का पता लगा सकें जिनमें छात्र विफल है।

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