एक्सेल वीबीए एरे: प्रकार और उदाहरण सहित उपयोग विधि

⚡ स्मार्ट सारांश

Excel VBA में, एरे एक ही डेटा प्रकार के संबंधित मानों के समूह को एक नाम के अंतर्गत संग्रहीत करते हैं, जिन्हें इंडेक्स के माध्यम से एक्सेस किया जाता है। यह पृष्ठ स्टैटिक और डायनामिक एरे, एक, दो और बहु-आयामी एरे, घोषणा सिंटैक्स और पेय पदार्थ लोड करने के एक उदाहरण के बारे में बताता है।

  • 📦 ऐरे की अवधारणा: एक ही नाम वाली मेमोरी लोकेशन जिसमें एक ही डेटा प्रकार के कई मान होते हैं, जो एक इंडेक्स द्वारा अलग किए जाते हैं।
  • 🎯 लाभ: एरे संबंधित डेटा को समूहित करते हैं, वेरिएबल्स की संख्या कम करते हैं, और डेटा को पुनः प्राप्त करने और सॉर्ट करने की प्रक्रिया को तेज बनाते हैं।
  • 📌 स्थैतिक सरणी: एक निश्चित आकार के साथ घोषित, उदाहरण के लिए Dim ArrayMonth(12) As String, जब तत्व गणना ज्ञात हो।
  • 🔄 गतिशील सरणी: Dim ArrayMonth() का उपयोग करके इसे खाली घोषित किया जाता है और बाद में ReDim का उपयोग करके इसका आकार निर्धारित किया जाता है जब तत्वों की संख्या अज्ञात होती है।
  • 📐 आयाम: एक ऐरे एकल सूचियों, तालिकाओं या बहु-स्तरीय डेटा को मॉडल करने के लिए एक, दो या अधिक इंडेक्स का उपयोग करता है।
  • 🧪 कार्य उदाहरण: एक कमांड बटन Sheet1.Cells का उपयोग करके एक ऐरे से चार पेय पदार्थों के नाम वर्कशीट सेल में लोड करता है।

एक्सेल VBA एरेज़

VBA ऐरे क्या है?

सरणी को एक मेमोरी स्थान के रूप में परिभाषित किया जाता है जो एक से अधिक मान संग्रहीत करने में सक्षम होता है। सभी मान एक ही डेटा प्रकार के होने चाहिए। मान लें कि आप अपने पसंदीदा पेय पदार्थों की सूची को एक ही चर में संग्रहीत करना चाहते हैं, तो आप ऐसा करने के लिए VBA सरणी का उपयोग कर सकते हैं।

एक सरणी का उपयोग करके, आप संबंधित मानों को उसी नाम से संदर्भित कर सकते हैं। आप उन्हें अलग-अलग बताने के लिए एक इंडेक्स या सबस्क्रिप्ट का उपयोग कर सकते हैं। व्यक्तिगत मानों को Excel VBA सरणी के तत्वों के रूप में संदर्भित किया जाता है। वे इंडेक्स 0 से उच्चतम इंडेक्स मान तक सन्निहित हैं।

यह ट्यूटोरियल मानता है कि आप उपयोग कर रहे हैं Microsoft एक्सेल संस्करण 2013. ज्ञान अभी भी अन्य संस्करणों पर लागू होता है Microsoft एक्सेल भी.

सरणियों के क्या लाभ हैं?

ऐरे कोड लिखने से पहले, यह समझना ज़रूरी है कि ऐरे का उपयोग क्यों किया जाता है। VBA ऐरे फ़ंक्शन के कुछ लाभ निम्नलिखित हैं।

  1. तार्किक रूप से संबंधित डेटा को एक साथ समूहित करें - मान लें कि आप छात्रों की सूची संग्रहीत करना चाहते हैं। आप एक एकल सरणी चर का उपयोग कर सकते हैं जिसमें छात्र श्रेणियों के लिए अलग-अलग स्थान हैं जैसे कि किंडर गार्डन, प्राथमिक, माध्यमिक, हाई स्कूल, आदि।
  2. एरे से मेंटेन करने योग्य कोड लिखना आसान हो जाता है। समान तार्किक रूप से संबंधित डेटा के लिए, यह आपको एक से अधिक चर परिभाषित करने के बजाय, एक एकल चर परिभाषित करने की अनुमति देता है।
  3. बेहतर प्रदर्शन - एक बार सारणी परिभाषित हो जाने पर, डेटा को पुनः प्राप्त करना, क्रमबद्ध करना और संशोधित करना तेज़ होता है।

VBA में ऐरे के प्रकार

VBA दो प्रकार के सरणियों का समर्थन करता है;

  • स्थिर - इस प्रकार के ऐरे में तत्वों की एक निश्चित पूर्व-निर्धारित संख्या होती है जिसे संग्रहीत किया जा सकता है। स्टेटिक ऐरे के डेटा प्रकार का आकार नहीं बदला जा सकता है। ये तब उपयोगी होते हैं जब आप ज्ञात संस्थाओं जैसे कि सप्ताह में दिनों की संख्या, लिंग आदि के साथ काम करना चाहते हैं।उदाहरण के लिए: मंद ArrayMonth(12) स्ट्रिंग के रूप में
  • गतिशील – इस प्रकार की सरणियों में संग्रहित किए जा सकने वाले तत्वों की कोई पूर्व-निर्धारित संख्या नहीं होती है। ये उन संस्थाओं के साथ काम करते समय उपयोगी होते हैं जिनकी संख्या आप पूर्व निर्धारित नहीं कर सकते।उदाहरण के लिए: Dim ArrayMonth() वैरिएंट के रूप में

एक बार जब आपको पता चल जाए कि कौन सा प्रकार आपके डेटा के लिए उपयुक्त है, तो अगला चरण प्रत्येक के लिए घोषणा सिंटैक्स है।

सारणी घोषित करने के लिए वाक्यविन्यास

स्थैतिक सरणियाँ

घोषित करने के लिए वाक्यविन्यास स्थिर सरणियाँ इस प्रकार है:

Dim arrayName (n) as datatype

यहाँ,

Code कार्य
मंद arrayName (n) डेटा प्रकार
  1. यह arrayName नामक एक ऐरे वैरिएबल को n आकार और डेटाटाइप के साथ घोषित करता है। आकार उन तत्वों की संख्या को संदर्भित करता है जिन्हें ऐरे स्टोर कर सकता है।

गतिशील सरणियाँ

घोषित करने के लिए वाक्यविन्यास DYNAMIC सरणियाँ इस प्रकार है:

Dim arrayName() as datatype
ReDim arrayName(4)

यहाँ,

Code कार्य
मंद arrayName () डेटा प्रकार
  1. यह तत्वों की संख्या निर्दिष्ट किए बिना arrayName नामक एक सरणी चर घोषित करता है
पुनः डिम arrayName(4)
  1. यह सरणी को परिभाषित करने के बाद सरणी का आकार निर्दिष्ट करता है।

सरणी आयाम

एक सारणी एक आयाम, दो आयाम या बहुआयामी हो सकती है।

  • एक आयाम: इस आयाम में, सरणी केवल एक इंडेक्स का उपयोग करती है। उदाहरण के लिए, प्रत्येक आयु के लोगों की संख्या।
  • दो आयाम: इस आयाम में, सरणी दो इंडेक्स का उपयोग करती है। उदाहरण के लिए, प्रत्येक कक्षा में छात्रों की संख्या। इसके लिए कक्षाओं की संख्या और प्रत्येक कक्षा में छात्रों की संख्या की आवश्यकता होती है
  • बहु आयाम: इस आयाम में, सरणी दो से अधिक इंडेक्स का उपयोग करती है। उदाहरण के लिए, दिन के समय का तापमान। (30, 40, 20)।

एक्सेल VBA में ऐरे का उपयोग कैसे करें

सिद्धांत को समझने के बाद, हम एक वास्तविक वर्कबुक में ऐरे का उपयोग कर सकते हैं। हम एक सरल एप्लिकेशन बनाएंगे। यह एप्लिकेशन एक ऐरे वेरिएबल से डेटा लेकर एक्सेल शीट को भरेगा। इस VBA ऐरे उदाहरण में, हम निम्नलिखित कार्य करेंगे।

  • कोई नया बनाएं Microsoft Excel कार्यपुस्तिका का चयन करें और उसे Excel मैक्रो-सक्षम कार्यपुस्तिका (*.xlsm) के रूप में सहेजें.
  • कार्यपुस्तिका में कमांड बटन जोड़ें
  • कमांड बटन का नाम और कैप्शन गुण सेट करें
  • एक्सेल शीट को भरने वाले VBA को प्रोग्रामिंग करना

आइये इस अभ्यास को चरण दर चरण करें,

चरण 1 – एक नई कार्यपुस्तिका बनाएँ

  1. प्रारंभिक Microsoft एक्सेल
  2. नई कार्यपुस्तिका को VBA Arrays.xlsm के रूप में सहेजें

चरण 2 – एक कमांड बटन जोड़ें

नोट: यह खंड मानता है कि आप एक्सेल में इंटरफ़ेस बनाने की प्रक्रिया से परिचित हैं। यदि आप परिचित नहीं हैं, तो ट्यूटोरियल पढ़ें VBA एक्सेल फॉर्म नियंत्रण और ActiveX नियंत्रणयह आपको इंटरफ़ेस बनाने का तरीका दिखाएगा

  1. शीट में कमांड बटन जोड़ें

Excel VBA में Array का उपयोग करें

  1. नाम गुण को cmdLoadBeverages पर सेट करें
  2. कैप्शन प्रॉपर्टी को लोड बेवरेज पर सेट करें

अब आपका GUI इस प्रकार होना चाहिए

Excel VBA में Array का उपयोग करें

चरण 3 – फ़ाइल सहेजें

  1. सेव एज़ बटन पर क्लिक करें
  2. नीचे दी गई छवि में दिखाए अनुसार Excel मैक्रो-सक्षम कार्यपुस्तिका (*.xlsm) चुनें

Excel VBA में Array का उपयोग करें

चरण 4 – कोड लिखें

अब हम अपने एप्लीकेशन के लिए कोड लिखेंगे

  1. लोड बेवरेजेज बटन पर राइट क्लिक करें और व्यू कोड चुनें
  2. cmdLoadBeverages के क्लिक इवेंट में निम्नलिखित कोड जोड़ें
Private Sub cmdLoadBeverages_Click()
    Dim Drinks(1 To 4) As String

    Drinks(1) = "Pepsi"
    Drinks(2) = "Coke"
    Drinks(3) = "Fanta"
    Drinks(4) = "Juice"

    Sheet1.Cells(1, 1).Value = "My Favorite Beverages"
    Sheet1.Cells(2, 1).Value = Drinks(1)
    Sheet1.Cells(3, 1).Value = Drinks(2)
    Sheet1.Cells(4, 1).Value = Drinks(3)
    Sheet1.Cells(5, 1).Value = Drinks(4)
End Sub

यहाँ,

Code कार्य
डिम ड्रिंक्स (1 से 4) स्ट्रिंग के रूप में
  • यह Drinks नामक एक ऐरे वैरिएबल घोषित करता है। पहला ऐरे इंडेक्स 1 है और अंतिम ऐरे इंडेक्स 4 है।
पेय(1) = “पेप्सी”
  • पहले ऐरे तत्व को Pepsi मान असाइन करता है। अन्य समान कोड ऐरे में अन्य तत्वों के लिए भी यही करता है।
Sheet1.Cells(1, 1).Value = “मेरे पसंदीदा पेय पदार्थ”
  • सेल एड्रेस A1 में My Favorite Beverages का मान लिखता है। शीट1 शीट को संदर्भित करता है, और सेल(1,1) पंक्ति संख्या 1 और कॉलम 1 (B) को संदर्भित करता है
शीट1.सेल्स(2, 1).वैल्यू = पेय(1)
  • इंडेक्स 1 वाले ऐरे तत्व का मान कॉलम 1 की पंक्ति संख्या दो में लिखता है

हमारे एप्लिकेशन का परीक्षण

कोड तैयार हो जाने के बाद, अंतिम चरण बटन को चलाना और यह पुष्टि करना है कि ऐरे शीट को भर देता है। डेवलपर टैब चुनें और सुनिश्चित करें कि डिज़ाइन मोड बटन "बंद" है। इसका संकेत यह है कि इसका बैकग्राउंड सफेद होगा, न कि रंगीन (हरापन लिए हुए) बैकग्राउंड। (नीचे दी गई छवि देखें)

Excel VBA में किसी एप्लिकेशन का परीक्षण करना

लोड पेय पदार्थ बटन पर क्लिक करें

आपको निम्नलिखित परिणाम मिलेंगे

Excel VBA में किसी एप्लिकेशन का परीक्षण करना

उपरोक्त कोड युक्त Excel डाउनलोड करें

ऊपर दी गई एक्सेल फ़ाइल डाउनलोड करें Code

अक्सर पूछे जाने वाले प्रश्न

एक स्थैतिक सरणी का आकार घोषणा के समय निश्चित होता है, जैसे कि Dim Arr(12)। एक गतिशील सरणी को Dim Arr() के साथ खाली घोषित किया जाता है और बाद में ReDim का उपयोग करके आकार बदला जाता है जब तत्वों की संख्या पहले से ज्ञात नहीं होती है।

ReDim किसी डायनामिक ऐरे की घोषणा के बाद उसके आकार को निर्धारित या परिवर्तित करता है। ReDim Preserve Arr(10) की तरह Preserve कीवर्ड जोड़ने से आकार बदलते समय मौजूदा मान सुरक्षित रहते हैं; Preserve के बिना, सभी संग्रहित मान साफ़ हो जाते हैं।

LBound और UBound फ़ंक्शन का उपयोग करें। LBound सबसे कम इंडेक्स लौटाता है और UBound सबसे ज़्यादा इंडेक्स लौटाता है। तत्वों की संख्या UBound(Arr) में से LBound(Arr) घटाने पर उसमें एक जोड़ने के बराबर होती है, जो स्टैटिक और डायनामिक दोनों तरह के एरे के लिए काम करता है।

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

जी हां। एआई सहायक "सबस्क्रिप्ट सीमा से बाहर" त्रुटि और कोड को पढ़ते हैं, फिर उस इंडेक्स की ओर इशारा करते हैं जो ऐरे की सीमा से अधिक है और समाधान सुझाते हैं, जैसे कि रीडिम आकार या लूप काउंटर को समायोजित करना। डेवलपर इसे लागू करता है और पुनः परीक्षण करता है।

इस पोस्ट को संक्षेप में इस प्रकार लिखें: