VBA कई वर्षों से Microsoft Office सुइट का हिस्सा रहा है। जबकि इसमें पूर्ण VB एप्लिकेशन की पूर्ण कार्यक्षमता और शक्ति नहीं है, VBA Office उपयोगकर्ताओं को Office उत्पादों को एकीकृत करने और उनमें किए जाने वाले काम को स्वचालित करने का लचीलापन प्रदान करता है।
VBA में उपलब्ध सबसे शक्तिशाली उपकरणों में से एक है डेटा की पूरी रेंज को एक वेरिएबल में लोड करने की क्षमता जिसे ऐरे कहा जाता है। इस तरह डेटा लोड करके, आप उस डेटा रेंज को विभिन्न तरीकों से मैनिपुलेट या गणना कर सकते हैं।
तो VBA ऐरे क्या है? इस लेख में हम उस प्रश्न का उत्तर देंगे, और आपको दिखाएंगे कि अपने VBA स्क्रिप्ट में एक का उपयोग कैसे करें।
VBA ऐरे क्या है?
Excel में VBA ऐरे का उपयोग करना बहुत सरल है, लेकिन यदि आपने कभी इसका उपयोग नहीं किया है तो ऐरे की अवधारणा को समझना थोड़ा जटिल हो सकता है।
एक ऐरे को अंदर सेक्शन वाले बॉक्स की तरह समझें। एक-आयामी ऐरे एक बॉक्स है जिसमें सेक्शन की एक लाइन होती है। दो-आयामी ऐरे एक बॉक्स है जिसमें सेक्शन की दो लाइनें होती हैं।
आप इस "बॉक्स" के प्रत्येक सेक्शन में किसी भी क्रम में डेटा डाल सकते हैं।
अपनी VBA स्क्रिप्ट की शुरुआत में, आपको इस "बॉक्स" को अपने VBA ऐरे को परिभाषित करके परिभाषित करने की आवश्यकता है। इसलिए एक ऐरे बनाने के लिए जो डेटा का एक सेट रख सके (एक-आयामी ऐरे), आप निम्न लाइन लिखेंगे।
Dim arrMyArray(1 To 6) As String
बाद में आपके प्रोग्राम में, आप पैरेंथेसिस के अंदर सेक्शन को संदर्भित करके इस ऐरे के किसी भी सेक्शन में डेटा रख सकते हैं।
arrMyArray(1) = "Ryan Dube"
आप निम्न लाइन का उपयोग करके दो-आयामी ऐरे बना सकते हैं।
Dim arrMyArray(1 To 6,1 to 2) As Integer
पहली संख्या पंक्ति को दर्शाती है, और दूसरी कॉलम को। इसलिए उपरोक्त ऐरे 6 पंक्तियों और 2 कॉलम वाली रेंज रख सकता है।
आप इस ऐरे के किसी भी तत्व को निम्नानुसार डेटा से लोड कर सकते हैं।
arrMyArray(1,2) = 3
यह सेल B1 में 3 लोड करेगा।
एक ऐरे किसी भी प्रकार का डेटा रख सकता है जैसे एक नियमित वेरिएबल, जैसे स्ट्रिंग्स, बूलियन, इंटीजर्स, फ्लोट्स और बहुत कुछ।
पैरेंथेसिस के अंदर की संख्या एक वेरिएबल भी हो सकती है। प्रोग्रामर आमतौर पर ऐरे के सभी सेक्शन के माध्यम से गिनने के लिए For Loop का उपयोग करते हैं और स्प्रेडशीट में डेटा सेल को ऐरे में लोड करते हैं। आप इसे इस लेख में बाद में कैसे करना है यह देखेंगे।
Excel में VBA ऐरे को कैसे प्रोग्राम करें
आइए एक सरल प्रोग्राम देखें जहां आप स्प्रेडशीट से जानकारी को एक बहुआयामी ऐरे में लोड करना चाह सकते हैं।
एक उदाहरण के रूप में, आइए एक उत्पाद बिक्री स्प्रेडशीट देखें, जहां आप सेल्स रेप का नाम, आइटम, और कुल बिक्री को स्प्रेडशीट से निकालना चाहते हैं।
ध्यान दें कि VBA में जब आप पंक्तियों या कॉलम को संदर्भित करते हैं, तो आप ऊपर बाएं से 1 से शुरू करके पंक्तियों और कॉलम की गिनती करते हैं। इसलिए रेप कॉलम 3 है, आइटम कॉलम 4 है, और कुल कॉलम 7 है।
सभी 11 पंक्तियों पर इन तीन कॉलम को लोड करने के लिए, आपको निम्न स्क्रिप्ट लिखनी होगी।
Dim arrMyArray(1 To 11, 1 To 3) As String
Dim i As Integer, j As Integer
For i = 2 To 12
For j = 1 To 3
arrMyArray(i-1, j) = Cells(i, j).Value
Next j
Next i
आप देखेंगे कि हेडर पंक्ति को छोड़ने के लिए, पहले For लुक में पंक्ति संख्या को 1 के बजाय 2 से शुरू करने की आवश्यकता है। इसका मतलब है कि जब आप Cells(i, j).Value का उपयोग करके सेल मान को ऐरे में लोड कर रहे हों तो आपको ऐरे पंक्ति मान के लिए 1 घटाना होगा।
अपना VBA ऐरे स्क्रिप्ट कहां डालें
Excel में VBA स्क्रिप्ट को प्रोग्राम करने के लिए, आपको VBA एडिटर का उपयोग करना होगा। आप रिबन के Controls सेक्शन में Developer मेनू चुनकर और View Code चुनकर इसे एक्सेस कर सकते हैं।
यदि आपको मेनू में Developer नहीं दिखता है, तो आपको इसे जोड़ना होगा। ऐसा करने के लिए, Excel Options विंडो खोलने के लिए File और Options चुनें।
choose commands from ड्रॉपडाउन को All Commands पर बदलें। बाएं मेनू से Developer चुनें और इसे दाएं पेन पर ले जाने के लिए Add बटन चुनें। इसे सक्षम करने के लिए चेकबॉक्स चुनें और समाप्त करने के लिए OK चुनें।
जब Code Editor विंडो खुलती है, तो सुनिश्चित करें कि बाएं पेन में वह शीट चुनी गई है जिसमें आपका डेटा है। बाएं ड्रॉपडाउन में Worksheet चुनें और दाएं में Activate। यह Worksheet_Activate() नामक एक नई सबरूटीन बनाएगा।
यह फ़ंक्शन जब भी स्प्रेडशीट फ़ाइल खोली जाएगी तब चलेगा। इस सबरूटीन के अंदर स्क्रिप्ट पेन में कोड पेस्ट करें।
यह स्क्रिप्ट 12 पंक्तियों के माध्यम से काम करेगी और मूल शीट से कॉलम 3 से रेप नाम, कॉलम 4 से आइटम, और कॉलम 7 से कुल बिक्री लोड करेगी।
एक बार जब दोनों For लूप समाप्त हो जाते हैं, तो दो-आयामी ऐरे arrMyArray में मूल शीट से आपके द्वारा निर्दिष्ट सभी डेटा होता है।
Excel VBA में ऐरे में हेरफेर करना
मान लें कि आप सभी अंतिम बिक्री मूल्यों पर 5% बिक्री कर लागू करना चाहते हैं, और फिर सभी डेटा को एक नई शीट पर लिखना चाहते हैं।
आप पहले के बाद एक और For लूप जोड़कर, नई शीट पर परिणाम लिखने के कमांड के साथ ऐसा कर सकते हैं।
For k = 2 To 12
Sheets("Sheet2").Cells(k, 1).Value = arrMyArray(k - 1, 1)
Sheets("Sheet2").Cells(k, 2).Value = arrMyArray(k - 1, 2)
Sheets("Sheet2").Cells(k, 3).Value = arrMyArray(k - 1, 3)
Sheets("Sheet2").Cells(k, 4).Value = arrMyArray(k - 1, 3) * 0.05
Next k
यह पूरे ऐरे को Sheet2 में "अनलोड" करेगा, जिसमें कुल को 5% से गुणा करके टैक्स राशि वाली एक अतिरिक्त पंक्ति होगी।
परिणामी शीट इस तरह दिखेगी।
जैसा कि आप देख सकते हैं, Excel में VBA ऐरे अत्यंत उपयोगी और किसी अन्य Excel ट्रिक जितने बहुमुखी हैं।
ऊपर दिया गया उदाहरण ऐरे के लिए बहुत सरल उपयोग है। आप बहुत बड़े ऐरे बना सकते हैं और उनमें संग्रहीत डेटा के विरुद्ध सॉर्टिंग, औसत, या कई अन्य फ़ंक्शन कर सकते हैं।
यदि आप वास्तव में रचनात्मक होना चाहते हैं, तो आप दो अलग-अलग शीट्स से सेल की रेंज वाले दो ऐरे भी बना सकते हैं, और प्रत्येक ऐरे के तत्वों के बीच गणना कर सकते हैं।
अनुप्रयोग केवल आपकी कल्पना तक सीमित हैं।