TOP

VBA-पाठ 6.2. डेटा प्रकार (Variables)

पिछले पाठ में, हमने वेरिएबल्स पर ध्यान दिया जिनमें कुछ डेटा लिखा जा सकता है, लेकिन उनमें एक से अधिक मान नहीं हो सकते। इस सीमा से बचने के लिए, VBA में ऐसे ऐरे हैं जो एकाधिक मान संग्रहीत कर सकते हैं।


यहां विभिन्न सरणियों के कुछ उदाहरण दिए गए हैं:

Sub variables()
    'एक वेरिएबल घोषित करने का एक उदाहरण
    Dim var1 As String
    
    '1-आयामी सरणी घोषित करने का एक उदाहरण
    Dim array1(4) As String
    
    '2-आयामी सरणी घोषित करने का एक उदाहरण
    Dim array2(4, 3) As String
    
    '3-आयामी सरणी घोषित करने का एक उदाहरण
    Dim array3(4, 3, 2) As String
End Sub

एक आयामी सरणी

Dim array1(4) As String

एक-आयामी सरणी को एक कॉलम वाली तालिका के रूप में सोचा जा सकता है। सरणी array1(4) एक आयामी सरणी है जिसमें 5 रिकॉर्ड रखे जा सकते हैं। 5 क्यों? क्योंकि ऐरे में रिकॉर्ड की संख्या शून्य (0, 1, 2, 3, 4) से शुरू होती है।

आइए अब एक 2-आयामी सरणी पर विचार करें:

Dim array2(4, 3) As String

यह पहले से ही 5 पंक्तियों और 4 स्तंभों वाली एक तालिका जैसा दिखेगा:

'रंगीन कोशिकाओं के लिए मान निर्दिष्ट करना
array2(0, 0) = "लाल कोशिका में मूल्य"
array2(4, 1) = "हरे सेल में मूल्य"
array2(2, 3) = "नीले सेल में मान"

स्थिरांक

चर की तरह, स्थिरांक का उपयोग मूल्यों को संग्रहीत करने के लिए किया जा सकता है, लेकिन अंतर यह है कि मान बदल नहीं सकते हैं। मान को दोहराने से बचने के लिए हम एक स्थिरांक जोड़ सकते हैं, उदाहरण के लिए 13.14:

Sub const_example()
    Cells(1, 1) = Cells(1, 2) * 13.14
    Cells(2, 1) = Cells(2, 2) * 13.14
    Cells(3, 1) = Cells(3, 2) * 13.14
    Cells(4, 1) = Cells(4, 2) * 13.14
    Cells(5, 1) = Cells(5, 2) * 13.14
End Sub

इससे कोड को समझना और संपादित करना आसान हो जाता है। यह आपको स्थिरांक का मान काफी सरलता से बदलने की भी अनुमति देता है:

Sub const_example()
   'एक स्थिरांक घोषित करना + एक मान निर्दिष्ट करना
    Const ANNUAL_RATE As Double = 13.14
   
    Cells(1, 1) = Cells(1, 2) * ANNUAL_RATE
    Cells(2, 1) = Cells(2, 2) * ANNUAL_RATE
    Cells(3, 1) = Cells(3, 2) * ANNUAL_RATE
    Cells(4, 1) = Cells(4, 2) * ANNUAL_RATE
    Cells(5, 1) = Cells(5, 2) * ANNUAL_RATE
End Sub

चर का दायरा

यदि किसी प्रक्रिया की शुरुआत में एक वेरिएबल घोषित किया जाता है (Sub), तो इसका उपयोग केवल इस प्रक्रिया में किया जा सकता है। प्रक्रिया निष्पादित होने के बाद वेरिएबल का मान उपलब्ध नहीं होगा।

Sub procedure1()
   Dim var1 As Integer
   '=> वेरिएबल केवल इस प्रक्रिया में मान्य है
End Sub

Sub procedure2()
   '=> var1 का उपयोग यहां नहीं किया जा सकता
End Sub

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

Dim var1 As Integer

Sub procedure1()
   '=> var1 का उपयोग यहां किया जा सकता है
End Sub

Sub procedure2()
   '=> var1 का उपयोग यहां भी किया जा सकता है
End Sub

यदि आप पुस्तक के सभी मॉड्यूल में समान वेरिएबल का उपयोग करना चाहते हैं, तो आपको पिछले उदाहरण में केवल Dim को Global से बदलना चाहिए:

Global var1 As Integer

जिस प्रक्रिया में यह दिखाई देता है उसे निष्पादित करने के बाद एक वेरिएबल का उपयोग करने के लिए, Dim को Static से बदलें:

Sub procedure1()
    Static var1 As Integer
End Sub

प्रक्रिया में सभी चर के मानों का उपयोग करने के लिए, Sub से पहले Static जोड़ें:

Static Sub procedure1()
    Dim var1 As Integer
End Sub

अपना खुद का वैरिएबल प्रकार बनाना

यहां एक त्वरित उदाहरण दिया गया है कि आप अपना स्वयं का प्रकार कैसे बना सकते हैं:

 'एक वैरिएबल प्रकार बनाना
 Type customers
    last_name As String
    first_name As String
 End Type
   
 Sub variables()
    'एक चर की घोषणा
    Dim cust1 As customers
   
    'Cust1 को मान निर्दिष्ट करना
    cust1.last_name = "Smith"
    cust1.first_name = "John"
   
    'उपयोग का उदाहरण
    MsgBox cust1.last_name & " " & cust1.first_name
 End Sub