VBA कई सालों से Microsoft Office सुइट का हिस्सा रहा है। हालांकि इसमें पूर्ण VB एप्लिकेशन की पूर्ण कार्यक्षमता और शक्ति नहीं है, VBA कार्यालय उपयोगकर्ताओं को कार्यालय उत्पादों को एकीकृत करने और उनमें आपके द्वारा किए जाने वाले कार्य को स्वचालित करने के लिए लचीलापन प्रदान करता है।
सबसे शक्तिशाली उपकरणों में से एक। VBA में उपलब्ध एक संपूर्ण चर डेटा को एक एकल चर में लोड करने की क्षमता है जिसे एक सरणी कहा जाता है। इस तरह से डेटा लोड करके, आप विभिन्न तरीकों से डेटा की उस सीमा पर गणना में हेरफेर या प्रदर्शन कर सकते हैं।
तो एक VBA सरणी क्या है? इस लेख में हम उस प्रश्न का उत्तर देंगे, और आपको दिखाएंगे कि आपकी अपनी VBA स्क्रिप्ट
में VBA एरे का उपयोग कैसे करें?
VBA का उपयोग कैसे करें? एक्सेल में सरणी बहुत सरल है, लेकिन सरणियों की अवधारणा को समझना थोड़ा जटिल हो सकता है यदि आपने कभी भी एक का उपयोग नहीं किया है।
इसके साथ अनुभागों के साथ एक बॉक्स की तरह एक सरणी के बारे में सोचो। एक-आयामी सरणी एक बॉक्स है जिसमें अनुभागों की एक पंक्ति होती है। एक द्वि-आयामी सरणी वर्गों की दो पंक्तियों के साथ एक बॉक्स है।
आप इस "बॉक्स" के प्रत्येक खंड में अपनी पसंद के अनुसार किसी भी क्रम में डेटा डाल सकते हैं।
In_content_1 all: [300x250] / डीएफपी: [640x360]->आपकी 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
यह 3 को सेल B1 में लोड करेगा।
एक सरणी किसी भी प्रकार के डेटा को एक नियमित चर के रूप में पकड़ सकता है, जैसे कि स्ट्रिंग्स, बूलियन, पूर्णांक, फ़्लोट्स और अधिक।
कोष्ठक के अंदर संख्या भी एक चर हो सकता है। प्रोग्रामर आमतौर पर एक सरणी के सभी वर्गों के माध्यम से गणना करने और स्प्रेडशीट में डेटा कोशिकाओं को सरणी में लोड करने के लिए फॉर लूप का उपयोग करते हैं। आप इस लेख में इसे बाद में कैसे करेंगे यह देखेंगे।
एक्सेल में 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
आप देखेंगे कि हेडर पंक्ति को छोड़ने के लिए, पहली पंक्ति में पंक्ति संख्या 2 के बजाय 2 से शुरू होने की आवश्यकता है। इसका मतलब है कि जब आप लोड कर रहे हों, तो आपको सरणी पंक्ति मान के लिए 1 को घटाना होगा। कक्ष (i, j) .Value का उपयोग करके सरणी में सेल मान।
अपनी VBA सरणी स्क्रिप्ट कहां डालें
प्रोग्राम को Excel में VBA स्क्रिप्ट रखने के लिए, आपको उपयोग करने की आवश्यकता है VBA संपादक। रिबन के नियंत्रण अनुभाग में डेवलपरमेनू का चयन करके और दृश्य कोडका चयन करके आप इसे एक्सेस कर सकते हैं।
यदि आपको मेनू में डेवलपर नहीं दिखता है, तो आपको इसकी आवश्यकता होगी इसे जोड़ें। ऐसा करने के लिए, Excel विकल्प विंडो खोलने के लिए फ़ाइलऔर विकल्पचुनें।
ड्रॉपडाउन से सभी कमांड्सका चयन करें। बाएं मेनू से डेवलपरचुनें और दाईं ओर फलक पर ले जाने के लिए जोड़ेंबटन का चयन करें। इसे सक्षम करने के लिए चेकबॉक्स चुनें और समाप्त करने के लिए ठीकका चयन करें।
जब कोड संपादक विंडो खुलती है, तो सुनिश्चित करें कि आपका डेटा जिस शीट में है वह बाएं फलक में चयनित है। बाईं ड्रॉपडाउन में वर्कशीटचुनें और दाईं ओर सक्रिय करें। यह Worksheet_Activate ()
नामक एक नया सबरूटीन बनाएगा जब भी स्प्रेडशीट फ़ाइल खोली जाएगी तो यह फ़ंक्शन चलेगा। इस सबरूटीन के अंदर स्क्रिप्ट पेन में कोड पेस्ट करें।
यह स्क्रिप्ट 12 पंक्तियों के माध्यम से काम करेगी और कॉलम 3, कॉलम 4 से आइटम और स्तंभ 7 से कुल बिक्री से प्रतिनिधि नाम को लोड करेगी।
एक बार दोनों छोरों के समाप्त होने के बाद, दो आयामी सरणी arrMyArray में मूल पत्रक से आपके द्वारा निर्दिष्ट सभी डेटा शामिल हैं।
Excel VBA में हेरफेर करना
मान लें कि आप सभी अंतिम बिक्री मूल्यों पर 5% बिक्री कर लागू करना चाहते हैं , और फिर सभी डेटा को एक नई शीट पर लिखें।
आप पहली बार के बाद एक और फ़ॉर लूप जोड़कर ऐसा कर सकते हैं, परिणाम को एक नई शीट पर लिखने के लिए एक आदेश के साथ
<। s>10यह कर को राशि के लिए 5% से गुणा करने वाली अतिरिक्त पंक्ति के साथ, शीट 2 में पूरे सरणी को "अनलोड" करेगा।
परिणामी शीट इस तरह दिखाई देगी।
जैसा कि आप देख सकते हैं, Excel में VBA सरणियाँ अत्यंत उपयोगी हैं और किसी भी अन्य एक्सेल चाल के रूप में बहुमुखी हैं।
ऊपर दिया गया उदाहरण किसी सरणी के लिए एक बहुत ही सरल उपयोग है। आप बहुत बड़ी सरणियाँ बना सकते हैं और उनमें आपके द्वारा संग्रहीत डेटा के विरुद्ध सॉर्टिंग, औसत, या कई अन्य कार्य कर सकते हैं।
यदि आप वास्तविक रचनात्मक प्राप्त करना चाहते हैं, तो आप दो सरणियाँ भी बना सकते हैं। / s>दो अलग-अलग शीटों से, और प्रत्येक सरणी के तत्वों के बीच गणना करें।
अनुप्रयोग केवल आपकी कल्पना द्वारा सीमित हैं।