Notes in Hindi

Introduction to Dynamic Array in VBA in Hindi

Makhanlal Chaturvedi University / BCA / VBA programming

Dynamic Array in VBA Explained with ReDim and Preserve in Hindi

Introduction to Dynamic Array in VBA in Hindi

जब हम Excel VBA में किसी डेटा को एक साथ store करना चाहते हैं, तो हम Array का उपयोग करते हैं। एक array एक ऐसा container होता है जिसमें कई values एक साथ रखी जा सकती हैं। लेकिन यदि हमें यह नहीं पता कि हमें कितने values रखने हैं, तो हम Dynamic Array का उपयोग करते हैं। Dynamic Array वह array होता है जिसकी size (आकार) को हम बाद में run-time के दौरान तय कर सकते हैं।

Fixed Array में हमें पहले से ही बताना पड़ता है कि कितने elements store करने हैं, जैसे:

Dim numbers(5) As Integer

लेकिन यदि हमें बाद में decide करना हो कि कितने elements चाहिए, तो हमें चाहिए Dynamic Array। इसका syntax इस प्रकार है:

Dim numbers() As Integer

ऊपर के उदाहरण में array की कोई size नहीं बताई गई है। यह एक dynamic array है और इसकी size को हम बाद में ReDim के माध्यम से define करेंगे।

Dynamic Array के लाभ

  • जब elements की संख्या पहले से न पता हो
  • Memory efficient होता है
  • जितना data चाहिए उतनी ही memory allocate होती है
  • Data बढ़ाने या घटाने में सुविधा होती है

How to Use ReDim Statement with Dynamic Array in Hindi

Dynamic Array में data store करने के लिए हमें सबसे पहले उसकी size को ReDim statement का उपयोग करके specify करना पड़ता है। ReDim का अर्थ होता है "Re-Dimension" यानी size को define या redefine करना।

ReDim का Basic Syntax

ReDim arrayName(size) As DataType

उदाहरण के लिए:

Dim marks() As Integer ReDim marks(4)

अब marks नाम के array में 5 elements (0 से 4 तक) store हो सकते हैं।

ReDim का उपयोग हम एक से अधिक बार भी कर सकते हैं, जब हमें size बदलनी हो:

ReDim marks(9)

ध्यान दें: जब आप ReDim दोबारा use करते हैं, तो पुराना data खो जाता है, यदि आपने Preserve keyword का उपयोग नहीं किया हो।

ReDim को कब और क्यों उपयोग करें

  • जब array की size run-time पर decide हो
  • जब user से input लेकर array में value भरनी हो
  • जब data को अलग-अलग conditions के हिसाब से adjust करना हो

Preserving Data in Dynamic Array using ReDim Preserve in Hindi

जब हम ReDim का इस्तेमाल करते हैं, तो पुराना data by default delete हो जाता है। अगर हम चाहते हैं कि पुराना data सुरक्षित रहे, तो हमें ReDim Preserve का use करना चाहिए।

ReDim Preserve का Syntax

ReDim Preserve arrayName(newSize)

उदाहरण:

Dim students() As String
ReDim students(1)
students(0) = "Amit"
students(1) = "Ravi"
ReDim Preserve students(2)
students(2) = "Sonal"

ऊपर दिए गए उदाहरण में, पहले array में दो students थे - "Amit" और "Ravi"। जब हमने array की size बढ़ाकर 3 की, तब "ReDim Preserve" का use करने से पहले के students की जानकारी भी सुरक्षित रही और नया student "Sonal" भी जोड़ा गया।

ReDim Preserve की सीमाएं

  • आप सिर्फ last dimension की size ही बदल सकते हैं
  • यदि आप multi-dimensional array में Preserve इस्तेमाल करना चाहते हैं, तो यह केवल final dimension तक ही सीमित है

Multi-Dimensional Array में Preserve काम नहीं करता:

Dim matrix() As Integer
ReDim matrix(2, 2)
' अब इसे ReDim Preserve से बढ़ाना चाहें तो केवल last dimension ही बढ़ा सकते हैं

इसलिए Preserve को single-dimensional array के साथ ही अधिकतर इस्तेमाल किया जाता है।

When to Prefer Dynamic Array Over Fixed Array in Hindi

Dynamic Array और Fixed Array दोनों के अपने लाभ होते हैं, लेकिन हमें Dynamic Array को तभी prefer करना चाहिए जब कुछ विशेष परिस्थितियाँ हों। नीचे कुछ महत्वपूर्ण स्थितियाँ दी गई हैं जहाँ हमें Dynamic Array को चुनना चाहिए:

Dynamic Array का उपयोग कब करें?

  • जब डेटा की मात्रा run-time में तय हो रही हो
  • जब user input के आधार पर array size तय करनी हो
  • जब memory को efficient तरीके से use करना हो
  • जब हमें values को update या resize करना हो execution के दौरान

Fixed Array का उपयोग कब करें?

  • जब डेटा की मात्रा पहले से fix हो
  • जब performance critical हो और memory पहले से allocate करनी हो
  • जब हम nested loops में index को control करना चाहते हों

एक comparison table देखें:

Feature Fixed Array Dynamic Array
Size पहले से तय Run-time पर decide होती है
Memory Use ज्यादा हो सकती है Memory efficient
Flexible नहीं हाँ
Code Complexity कम थोड़ी अधिक

Practice करने के लिए एक Example:

Sub DynamicArrayExample()
    Dim scores() As Integer
    Dim i As Integer

    'User से कितने students के marks लेने हैं
    Dim count As Integer
    count = InputBox("कितने students के marks दर्ज करने हैं?")

    ReDim scores(count - 1)

    For i = 0 To count - 1
        scores(i) = InputBox("Student " & (i + 1) & " का marks दर्ज करें:")
    Next i

    'Output
    For i = 0 To count - 1
        MsgBox "Student " & (i + 1) & " के marks हैं: " & scores(i)
    Next i
End Sub

इस example से एक beginner आसानी से समझ सकता है कि कैसे dynamic array को use किया जाता है और उसमें values डाली जाती हैं।

Dynamic Array एक बहुत ही useful concept है VBA में, खासकर जब डेटा की मात्रा और size run-time पर decide हो रही हो। ReDim और ReDim Preserve की मदद से हम array की size को manage कर सकते हैं और जरूरत पड़ने पर पुराने data को भी संभाल कर रख सकते हैं।

FAQs

Dynamic Array एक ऐसा array होता है जिसकी size को हम run-time के दौरान बदल सकते हैं। इसका उपयोग तब किया जाता है जब हमें पहले से यह न पता हो कि कितनी values store करनी हैं।
किसी भी Dynamic Array को declare करने के लिए आप parentheses के बिना size बताए declare करते हैं:
Dim arr() As DataType
उदाहरण:
Dim numbers() As Integer
ReDim का उपयोग Dynamic Array की size set या change करने के लिए किया जाता है। इससे हम यह तय करते हैं कि array में कितने elements होंगे।
उदाहरण:
ReDim numbers(5)
जब आप array की size को बदलते हैं और चाहते हैं कि पुराना data delete न हो, तो आपको ReDim Preserve का उपयोग करना चाहिए। यह पुराने elements को सुरक्षित रखता है:
ReDim Preserve numbers(10)
जब आपको यह न पता हो कि कितनी values store करनी हैं, या data की मात्रा run-time पर तय हो रही हो, तब Dynamic Array बेहतर होता है। यह memory efficient होता है और flexible भी।
हाँ, लेकिन एक limitation होती है — आप केवल last dimension की size ही change कर सकते हैं।
उदाहरण:
ReDim Preserve arr(2, 5) की जगह आप केवल last वाली dimension (5) को ही बदल सकते हैं।

Please Give Us Feedback