Excel VBA variable types and declare | Excel VBA lesson - 9 | local variable, Module level variable

Excel VBA variable types and declare | Excel VBA lesson - 9 | local variable, Module level variable



Types of Variable

जहां तक हम बात करे variable 3 प्रकार के होते हैं। या ये कहें की किस किस तरह से वारियाबले exist करते हैं।

1.   Local Variable

2.   Module Level Variable

3.   Public level Variable

Example

1.   Local Variable: जो Variable आपके macro के अन्दर ही खत्म हो जाते हैं जब वो macro finish हो जाएँ, इसका मतलब ये है की ये Macro के अंडर ही मौजूद रहेगा आप इसको macro के बाहर यूज नहीं कर सकते। जैसे मैं यहाँ पर एक variable लेता हूँ।

Sub Macro1 ()

       Dim A As Integer

मैंने यहाँ एक variable लिया है “A”

जब ये रन होगा तो VBA अपनी memory मे “A” को Save कर लेगा ओर ये कितना स्पेस लेता है ये Integer पर Depend  करता है। ओर आपको एक बात पता होनी चाहिए की VBA इसको अपनी Memory मे कितनी देर स्टोर करके रखता है तो मैं बता दु, जब हम इसे रन करते हैं तो जब तक macro खत्म नहीं होता तब तक इस value को BVA अपनी मेमोरी मे store करके रखता है। ताकि वो इसको यूज कर सके। ये macro रन होने के बाद जैसे ही stop होगा तो इस value ने जितना स्पेस लिया होगा VBA उसको release कर देगा। जिससे की ये स्पेस किसी दूसरे variable के लिए यूज आ सके। यानि के जो Variable आपके macro के अन्दर ही खत्म हो जाते हैं जब वो macro finish हो जाएँ तो उनको Local Variable कहते हैं। एक Example के साथ इसको समझ लेता हैं।

Sub Macro1 ()

       Dim A As Integer

       Dim B As Integer

       Dim C As Integer

      A = 20

      B = 10

                  c = a + b

                        Range("a1").Value = c

                        End Sub

यहाँ पर ये macro रन होने के बाद खत्म हो जाता है ओर इन value ने जो स्पेस लिया है वो release हो जाता है।

2.   Module Level Vairable: इसमे macro एक ही module के अन्दर किसी भी एक macro मे किसी दूसरे मकरो के variable को भी रन कर लेता है। इन variables को हम macro के top मे declare करते हैं।  इसको हम एक example के साथ आपको समझते हैं।

जैसे हमारे पास एक तो macro हो गया Macro1

 Sub Macro1 ()

       Dim A As Integer

       Dim B As Integer

यहाँ पर हम लिख देंगे Call Macro2

(ये VBA का एक वर्ड होता है ये एक macro को दूसरे macro से जोड़ देता है क्योंकि अब हम जो दूसरा macro लेंगे तो ये call करेगा दूसरे macro को ओर उसको इसमे जोड़ देगा। क्योंकि हमने एक लाइन ओर लिख दी है call macro2 तो मैं एक दूसरा macro ले लेता हूँ।

Sub Macro2 ()

       Dim X As Integer

       Dim Y As Integer

       X = 5

      Y = X+A+B

अब हम macro1 को रन करेंगे तो A ओर B को रन करने के बाद दूसरे मकरो पर जाएगा क्योंकि हमने इसको बताया है की macro2 को call करना है ओर आगे जैसे ही रन होगा ओर ये A या B पर पहुंचेगा तो ये एक error शो करेगा “variable not define” तो कोनसा variable define नहीं हुआ है जी हाँ A or B क्योंकि ये हमने define नहीं किए हैं macro2 मे हमने Dim A As Integer या Dim B As Integer कहीं नहीं लिखा है। ऐसे मे हम देखे की हमने macro1 मे तो लिखा है ओर फिर दूसरे macro को call किया है तो मैं बताना चहुगा की ये अभी वहीं काम करेगा जहां ये लिखा है। लेकिन हम इसको यहाँ भी काम करवाना चाहते हैं तो vba के मुताबिक इस variable को Local variable डिक्लैर न करके Module level variable मे declare किया जाए। Module level variable declare करने के लिए इसको यहाँ से हटा करके उपर लगा दे। उधारण के लिए नीचे देखे।

        Dim A As Integer

       Dim B As Integer

Sub Macro1 ()

यानि macro name से उपर लगा दे आप देखेगे automatic एक लाइन insert हो जाएगी। इसका मतलब है अब ये variable किसी भी भी macro मे चलेगा। इसको कहीं पर भी declare करने की जरूरत नहीं है सिर्फ इसी Module मे जिसमे आप बेशक अलग अलग macro लिखते हैं। क्योंकि अब हमने इसको Module level variable declare कर दिया है।

3.   Public Level Variable: इसके अंतर्गत मान लीजिये हमने किसी दूसरे module से किसी value को यूज करना हो तो हम Public level variable का यूज करेंगे जैसे मैं दूसरे  module मे एक macro लिखता हूँ Macro3 तो एक नया module इन्सर्ट करेंगे ओर macro लिखेंगे:

Sub Macro3 ()

       Dim Ver1 As Long

       Dim Ver2 As Long

       Ver2 = 5

      Ver2 = Var1+A

यहाँ पर हम मान कर चलते है की A variable दूसरे module मे भी declare किया है वो दूसरे module से भी access कर सकते हैं। तो हमको दूसरे macro मे जाना होगा उसके लिए यहाँ लिखेंगे “Call macro1 ओर दूसरे मकरो मे जाएंगे ओर रन करके देखेंगे तो यहाँ पर “variable not define” की error शो करेगा। इसका मतलब ये है की हमने A को define नहीं किया है। एक ही module मे रन करने के लिए तो define कर दिया है मगर अब हम दूसरे module मे हैं तो उसके लिए VBA कहता है की आपने Dim किया है आप इसको Public define करें। तो अब हम जहां पर Dim A As Integer लिखा है उसकी जगह Public A As Integer लिखना होगा या फिर आप Global A As Integer भी लिख सकते हैं। अब इसको रन करेंगे तो कोई भी error नहीं आएगा क्योकि हमने इसको global डिक्लैर कर दिया है अब इसको आप किसी भी module से access कर सकते हैं लेकिन इसी workbook के मोदुले से, किसी दूसरी workbook के module से नहीं।

Short मे समझने के लिए

Local Variable           =     within sub routine ओर Macro

Module Level Variable   =     It can be use within module or carry forward

Public Level Variable    =     across Modules within workbook

कोई टिप्पणी नहीं

टिप्पणी: केवल इस ब्लॉग का सदस्य टिप्पणी भेज सकता है.

Send Multiple Emails From Excel | Send Bulk Mail from Excel Sheet with Attachment in One Click

Send Multiple Emails From Excel | Send Bulk Mail from Excel Sheet with Attachment in One Click Download VBA Code Notepad file - Click here D...

Blogger द्वारा संचालित.