vba variables option explicit vba
यह ट्यूटोरियल बताता है कि VBA वेरिएबल्स को कैसे घोषित और उपयोग किया जाए। विकल्प स्पष्ट, परिवर्तनशील क्षेत्र, स्थिर और स्थिर चर के बारे में भी जानें:
एक कंप्यूटर में, सभी डेटा मान एक मेमोरी या कंप्यूटर स्टोरेज में संग्रहीत किए जाते हैं। इन मूल्यों तक पहुंचने के लिए, आपको उस मूल्य से संबंधित एक नाम निर्दिष्ट करना होगा, जिसे प्रोग्रामिंग भाषाओं में वैरिएबल कहा जाता है।
इस ट्यूटोरियल में, हम सीखेंगे कि विभिन्न प्रकार के वैरिएबल स्कोप्स के साथ-साथ एक वेरिएबल को कैसे घोषित करें और परिभाषित करें और स्टैटिक और कॉन्स्टैंट वेरिएबल्स को भी विस्तार से देखें।
=> वीबीए प्रशिक्षण ट्यूटोरियल के ए-जेड को देखने के लिए यहां देखें
आप क्या सीखेंगे:
VBA चर
चर कंप्यूटर भंडारण में मूल्यों के लिए प्लेसहोल्डर की तरह हैं। विविधताएं विभिन्न प्रकार के मूल्यों को धारण कर सकती हैं और कोड के निष्पादन के दौरान वे मूल्य बदल सकते हैं।
प्रत्येक चर का एक नाम होगा जिसका उपयोग मूल्य तक पहुंचने के लिए किया जाता है। नाम चयन के संबंध में VBA में कुछ अड़चनें हैं।
नीचे सूचीबद्ध बाधाओं की सूची है:
- आपके चर का नाम 255 वर्णों से अधिक नहीं हो सकता।
- एक चर नाम एक संख्या से शुरू नहीं हो सकता है।
- आप विशेष वर्णों से शुरू नहीं कर सकते हैं, जैसे!, @, &,।, # या रिक्त स्थान नहीं हो सकते।
- कीवर्ड को एक चर नाम के रूप में नहीं माना जाता है।
यदि आप इन बाधाओं का उल्लंघन करते हैं तो संकलक एक त्रुटि फेंक देगा
उदाहरण:
मान्य चर नाम: varName, परिणाम 12, First_Number
अमान्य चर नाम: 123abc, #number, उप, abc.123
पहला नंबर (शब्दों के बीच स्पेस की अनुमति नहीं है)
एक VBA परिवर्तनीय की घोषणा
हमें इसका उपयोग करने की आवश्यकता है कोई नहीं एक चर घोषित करने के लिए कीवर्ड। एक चर घोषित करते समय 2 खंड होते हैं। 1अनुसूचित जनजातिचर नाम और २ हैएन डीवैरिएबल में संग्रहित किए जाने वाले मूल्य का प्रकार जिसे डेटा प्रकार कहा जाता है।
सिंटैक्स: डेटाटाइप के रूप में मंद परिवर्तनीय नाम
उदाहरण:
- इंटीजर के रूप में डिम मायएज
- डबल के रूप में डिम My_Percentage
- स्ट्रिंग के रूप में मंद Full_Name
यहां आप कंपाइलर को स्पष्ट रूप से बता रहे हैं कि मेरे वेरिएबल को केवल इन प्रकार के डेटा को स्टोर करना चाहिए और VBA कंपाइलर प्रकार की बेमेल त्रुटि को तब सुनिश्चित करेगा जब वैरिएबल के लिए परिभाषित मान डेटा प्रकार से मेल न खाए।
उदाहरण:
Sub example1() Dim Total_Marks As Integer Total_Marks = “” MsgBox Total_Marks End Sub
लेकिन यदि आप चर के डेटा प्रकार के बारे में अनिश्चित हैं, तो VBA आपको डेटाटाइप को छोड़ने की अनुमति देता है। नीचे उल्लिखित वाक्यविन्यास भी मान्य है।
मंद चर नाम
जब आप डेटा प्रकार को वैरिएबल घोषित नहीं करते हैं, तो VBA इसे वेरिएंट डेटा प्रकार के रूप में मानता है, और यह किसी भी प्रकार के डेटा पूर्णांक को पूर्णांक, स्ट्रिंग, कार्यपुस्तिका, आदि के रूप में स्वीकार करने के लिए बाध्य है। वैरिएबल चर स्ट्रिंग मान, पूर्णांक मान, और किसी भी अन्य प्रकार को भी स्वीकार कर सकते हैं।
Sub VarientVariable() Dim Total_Marks Total_Marks = '' MsgBox Total_Marks Total_Marks = 544.33 MsgBox Total_Marks Total_Marks = 522 MsgBox Total_Marks End Sub
जैसे कि Total_Marks एक वैरिएबल वैरिएबल है, पिछले कोड के विपरीत, कंपाइलर ने नीचे दिखाए गए अनुसार कोई त्रुटि नहीं की।
ध्यान दें: याद रखें कि VBA आपको वास्तव में घोषित किए बिना एक चर का उपयोग करने की अनुमति देता है।
नीचे दिया गया उदाहरण कोड भी एक उचित परिणाम देता है। इस स्थिति में, VBA वैरिएंट डेटा प्रकार के रूप में चर को स्वचालित रूप से मानता है। इसे इम्प्लिक्ट डिक्लेरेशन कहा जाता है।
Sub VariantVariable() Total_Marks = 444 MsgBox Total_Marks End Sub
एक परिवर्तनीय घोषित करने के लाभ
- डीबग करने के लिए आसान: इसका उपयोग करने से पहले एक चर घोषित करना एक अच्छा अभ्यास है। यह हमें टाइप बेमेल और टाइपो त्रुटियों जैसी त्रुटियों की पहले से समझ देता है, जिससे कार्यक्रम के तर्क से भटकने का खतरा कम हो जाता है।
- बेहतर पठनीयता: एक टीम के रूप में, कोड को देखने वाले कई लोग होंगे, और एक चर घोषित करने से हर किसी को उन मूल्यों के साथ मदद मिलेगी, जो चर को लेने की उम्मीद है और उपयोगकर्ताओं को कार्यक्रम को निष्पादित करते समय उपयुक्त इनपुट मूल्यों को दर्ज करने में मदद करेगा।
- स्टोरेज की जगह: यदि आप एक चर घोषित नहीं करते हैं, तो VBA इसे वैरिएंट डेटा प्रकार के रूप में मानता है जो अन्य डेटा प्रकारों की तुलना में मेमोरी (16 बाइट्स से 22 बाइट्स) में सबसे बड़ा स्थान लेता है। उदाहरण के लिए, यदि आप एक प्रकार का बाइट का उपयोग कर रहे हैं जो सिर्फ 1 बाइट लेता है और यदि आप घोषित नहीं करते हैं तो VBA 16 बाइट्स की जगह को खत्म कर देगा, जिससे मेमोरी बर्बाद हो जाएगी।
विकल्प स्पष्ट
यह सुनिश्चित करने के लिए कि सभी चर स्पष्ट रूप से घोषित किए गए हैं, हमें उनका उपयोग करने से पहले विकल्प स्पष्ट विवरण का उपयोग करना होगा। इसका उपयोग उस मॉड्यूल में किसी भी प्रक्रिया की शुरुआत में किया जाना चाहिए।
आइए एक उदाहरण देखें जिसमें विकल्प स्पष्ट विवरण का उपयोग नहीं किया गया है।
Sub example3() Dim First_name As String First_name = ' abs' MsgBox Firt_Name End Sub
कोड निष्पादित करें (टूलबार में F5 या रन बटन दबाएं) और आप एक खाली संदेश बॉक्स प्राप्त करेंगे।
भले ही आपने चर घोषित कर दिया हो, आप Msgbox Firt_Name में टाइपो के कारण एक रिक्त परिणाम बॉक्स में समाप्त हो गए। विकल्प स्पष्टता हमें ऐसी त्रुटियों को दूर करने में मदद करेगी।
विकल्प स्पष्टीकरण का उपयोग करते हुए समान कोड को फिर से करें। प्रक्रिया शुरू होने से पहले विकल्प स्पष्ट करें।
Option Explicit Sub VarientVariable() Dim First_name As String First_name = ' abs' MsgBox Firt_Name End Sub
अब यदि आप कोड निष्पादित करते हैं (टूलबार में F5 या Run बटन दबाएं) और आपको एक कंपाइलर त्रुटि प्राप्त होगी।
आप VBA ऐड बना सकते हैं विकल्प स्पष्ट खुद ब खुद।
VB संपादक में, टूल्स पर जाएं -> विकल्प -> 'वैरिएबल डिक्लेरेशन की आवश्यकता है' चुनें।
अब विकल्प स्पष्ट जब आप एक नया मॉड्यूल सम्मिलित करते हैं या एक नया मैक्रो रिकॉर्ड करते हैं तो हर बार स्वचालित रूप से जोड़ा जाएगा।
ध्यान दें: विकल्प स्पष्टीकरण मौजूदा VBA कोड में नहीं जोड़ा जाएगा। यदि आवश्यक हो तो आपको इसे मैन्युअल रूप से जोड़ना होगा।
परिवर्तनीय के लिए एक मान असाइन करना
मानों को प्रतीक के बराबर (=) का उपयोग करके चर को सौंपा जा सकता है। यदि आप एक्सेल में सेल का जिक्र करते हैं, तो आपको रेंज फंक्शंस का उपयोग करने की आवश्यकता है।
नीचे दिए गए कोड को देखें।
Sub varValue() Dim var1 As Integer var1 = 10 Range('C1:C14').Value = var1 MsgBox var1 End Sub
उपरोक्त उदाहरण में, var1 एक चर है जो मान (=) का उपयोग करके सीधे मूल्य 10 संग्रहीत करता है और रेंज फ़ंक्शन var1 मान दर्ज करने में मदद करेगा जो कि Excel सेल C1 से C14 में 10 है।
एक चर का दायरा
एक कार्यक्रम में हर चर में एक परिभाषित गुंजाइश होगी। यह स्कोप प्रोग्राम को उन क्षेत्रों को बताता है जिसमें चर दिखाई देता है यानी मॉड्यूल या फ़ंक्शन जो चर का उपयोग कर सकते हैं या नहीं कर सकते हैं।
VBA में वैरिएबल के लिए 3 प्रकार के स्कोप परिभाषित हैं।
- प्रक्रिया-स्तर की गुंजाइश
- निजी मॉड्यूल-स्तरीय गुंजाइश
- सार्वजनिक मॉड्यूल-स्तरीय गुंजाइश
प्रक्रिया-स्तर स्कोप
एक प्रक्रिया में परिभाषित चर यानी उप या फ़ंक्शन में केवल उनका उपयोग करने में सक्षम होंगे। ये किसी अन्य प्रक्रिया के लिए दृश्यमान नहीं हैं।
उदाहरण:
Option Explicit Sub ProcScope() Dim msg As String vartext = 'Varible is visible only inside this Sub' MsgBox vartext End Sub Sub VarNotVisible() MsgBox vartext End Sub
जब आप उपरोक्त कोड निष्पादित करते हैं, तो पहले उप के लिए संदेशबॉक्स एक उचित परिणाम लौटाएगा, लेकिन दूसरे उप के लिए, एक कंपाइलर त्रुटि डाली जाएगी। क्योंकि शीर्ष चर केवल 1 के लिए दिखाई देता हैअनुसूचित जनजातिउप और 2 के लिए नहींएन डी। जैसा कि हमने विकल्प स्पष्ट का उपयोग किया है, हम 2 में चर को परिभाषित नहीं करने के लिए एक संकलक त्रुटि प्राप्त करेंगेएन डीविषय।


निजी मॉड्यूल-स्तरीय स्कोप
ये चर निर्धारित मॉड्यूल में सभी प्रक्रियाओं के लिए उपलब्ध हैं। डिफ़ॉल्ट रूप से, चर के साथ घोषित किया गया कोई नहीं प्राइवेट के रूप में स्कोप किया जाता है। लेकिन बेहतर पठनीयता के लिए निजी जोड़ने की सिफारिश की जाती है।
आइए एक ही उदाहरण पर विचार करें लेकिन हम प्रक्रिया के बाहर चर घोषित करेंगे।
Option Explicit Private vartext As String ‘ Dim vartext As String can also be used Sub PrivateScope() vartext = 'Varible is visible to all procedures' MsgBox vartext, ,”Result from Sub1” End Sub Sub VarIsVisible() MsgBox vartext, ,”Result from Sub2” End Sub
निष्पादन के बाद, आप देखेंगे कि दोनों प्रक्रिया बिना किसी त्रुटि के उचित परिणाम देगी। स्पष्ट समझ के लिए, हमने msgbox में सही शीर्षक जोड़ा है।
सार्वजनिक मॉड्यूल-स्तर स्कोप
इस प्रकार के चर सभी प्रक्रियाओं और किसी परियोजना के सभी मॉड्यूल में दिखाई देते हैं। 2 मॉड्यूल डालें। (एक शीट पर राइट-क्लिक करें और डालें -> मॉड्यूल)।
एक मॉड्यूल में नीचे कोड दर्ज करें।
Option Explicit Public vartext As String Sub PrivateScope() vartext = 'Varible is visible to all modules' MsgBoxvartext, , 'Result from Sub1' End Sub
नीचे दिए गए कोड को 2 मॉड्यूल में दर्ज करें।
Option Explicit Sub VarIsVisible() MsgBoxvartext, , 'Result from Sub2' End Sub
परिणाम नीचे दिखाए गए हैं
आइए एक व्यावहारिक उदाहरण पर विचार करें और सभी दायरे को बेहतर ढंग से समझें।
संलग्न उपरोक्त कोड के लिए संदर्भ फ़ाइल है।
स्थैतिक चर
आमतौर पर, चर का मूल्य केवल प्रक्रिया कॉल से प्रक्रिया के अंत तक संरक्षित होता है। यह प्रक्रिया समाप्त होने के बाद मूल्य को संरक्षित नहीं करता है।
उदाहरण के लिए , उपरोक्त कोड में, फर्स्ट नो और सेकंडो का मान प्रक्रिया समाप्त होते ही हटा दिया जाता है, अगली बार जब आप कोड निष्पादित करते हैं, तो फर्स्ट नो और सेकंडो को कोड में परिभाषित मूल्य के समान मूल्य मिलता है।
लेकिन स्टेटिक चर वे हैं जो निष्पादन के बाद भी चर के मूल्य को बनाए रखेंगे। एक स्थिर चर को केवल उप या फ़ंक्शन के अंदर अनुमति दी जाती है।
एक गैर-स्थिर चर के साथ नीचे दिए गए कोड पर विचार करें।
Option Explicit Sub staticVariable() Dim count As Integer count = count + 1 Debug.Print count End Sub
हर बार जब आप F5 मारते हैं, तो आपको परिणाम के रूप में केवल 1 मिलेगा।
अब चर को स्टेटिक घोषित करें।
Option Explicit Sub staticVariable() Static count As Integer count = count + 1 Debug.Print count End Sub
हर बार जब आप कोड (F5) निष्पादित करते हैं, तो परिणाम में 1,2,3 आदि की गणना के लिए एक बढ़ा हुआ मूल्य होगा क्योंकि स्टेटिक चर ने अपने मूल्य को बनाए रखा है।
ध्यान दें: जब तक आप टूलबार पर रीसेट बटन को हिट नहीं करते या वर्कबुक बंद नहीं करते तब तक स्टेटिक वैरिएबल वैल्यू बरकरार रखेगा।
लगातार चर
जैसा कि नाम से पता चलता है, प्रोग्राम के निष्पादन के दौरान इन चरों के मूल्य को नहीं बदला जा सकता है। एक बार एक स्थिरांक घोषित होने के बाद, इसे संशोधित या नया मान नहीं सौंपा जा सकता है।
एक स्थिरांक की घोषणा एक प्रक्रिया के भीतर या मॉड्यूल स्तर पर (सभी प्रक्रियाओं से ऊपर) की जा सकती है।
Option Explicit Sub constantVariable() Const SpeedLimitOfcar As String = '90kmph' Dim myCarSpeed As String myCarSpeed = '70kmph' If myCarSpeed > SpeedLimitOfcar Then MsgBox 'overspeed: Reduce the speed' Else MsgBox 'Within the limit: Always drive below : ' & SpeedLimitOfcar End If End Sub
यदि आप निरंतर मूल्य को बदलने का प्रयास करते हैं, तो एक संकलन त्रुटि डाली जाएगी।
Option Explicit Sub ChangeConstantVariable() Const SpeedLimitOfcar As Integer = 90 SpeedLimitOfcar = SpeedLimitOfcar + 10 MsgBox SpeedLimitOfcar End Sub
पूछे जाने वाले प्रश्न
Q # 1) VBA में सार्वजनिक चर कैसे सेट करें?
उत्तर: सार्वजनिक चर प्रक्रिया शुरू होने से पहले घोषित किए जाते हैं। चर की घोषणा करते समय सार्वजनिक खोजशब्द का उपयोग किया जाना चाहिए।
सार्वजनिक Total_Marks के रूप में पूर्णांक
Q # 2) प्रक्रिया के बाहर किस प्रकार के चर घोषित नहीं किए जा सकते हैं?
उत्तर: स्थैतिक चर को VBA में प्रक्रिया के बाहर घोषित नहीं किया जा सकता है और आपको एक संकलन त्रुटि मिलेगी।
Q # 3) VBA में वेरिएबल कैसे घोषित करें?
उत्तर: डिम कीवर्ड का प्रयोग वैरिएबल घोषित करने के लिए किया जाता है। डिम का मतलब है डायमेंशन।
डायटाइप के रूप में मंद परिवर्तन
Q # 4) VBA में सेल के लिए वैरिएबल वैल्यू कैसे असाइन करें?
उत्तर: आप रेंज फ़ंक्शन का उपयोग कर सकते हैं।
var1 = 10
रेंज ('C1: C14')। मान = var1
Q # 5) VBA में वेरिएबल्स क्या हैं?
उत्तर: कंप्यूटर स्टोरेज में वैल्यूज़ के लिए वेरिएबल प्लेसहोल्डर्स की तरह होते हैं। विविधताएं विभिन्न प्रकार के मूल्यों को धारण कर सकती हैं और कोड के निष्पादन के दौरान वे मूल्य बदल सकते हैं। प्रत्येक चर का एक नाम होना चाहिए, चर नाम का उपयोग करते हुए, कंप्यूटर उस चर के लिए निर्दिष्ट मूल्य प्राप्त करेगा।
Q # 6) क्या आपको VBA में वैरिएबल घोषित करना है?
उत्तर: घोषणा VBA में वैकल्पिक है। यदि आप एक चर घोषित नहीं करते हैं और सीधे प्रक्रिया में इसका उपयोग करते हैं, तो इसे एक इंप्रेशन डिक्लेरेशन कहा जाता है। कोड में त्रुटियों से बचने और बेहतर पठनीयता के लिए, स्पष्ट रूप से एक चर घोषित करने की सिफारिश की गई है।
Q # 7) मैं VBA में कई वेरिएबल्स कैसे घोषित करूं?
उत्तर: आप एक घोषणा विवरण में कई चर घोषित कर सकते हैं। आपको बस एक खंड में अल्पविराम द्वारा अलग किए गए चर नाम को निर्दिष्ट करने की आवश्यकता है।
सबसे अच्छा सॉफ्टवेयर सीपीयू और gpu तापमान की निगरानी करने के लिए
डिम फर्स्टनो, सेकेंडनो अस इंटेगर
आप एक घोषणा विवरण में विभिन्न चर भी निर्दिष्ट कर सकते हैं। प्रत्येक चर अपने नाम के भाग के बाद As खंड में निर्दिष्ट डेटा प्रकार ले जाएगा।
डिम ए, बी अस सिंगल, सी, डी अस डबल, ई अस इंटेगर, एफ अस स्ट्रिंग
Q # 8) VBA में मंद और निजी के बीच कोई अंतर नहीं होगा?
उत्तर: यदि आप एक निजी मॉड्यूल-स्तरीय गुंजाइश की घोषणा कर रहे हैं, तो एक चर को मंद या निजी घोषित करने में कोई अंतर नहीं है। डिफ़ॉल्ट रूप से, चर घोषित किए जाते हैं कोई नहीं प्राइवेट के रूप में स्कोप किया जाता है। लेकिन बेहतर पठनीयता के लिए निजी जोड़ने की सिफारिश की जाती है।
Q # 9) एक मॉड्यूल-स्तरीय चर क्या है?
उत्तर: मॉड्यूल-स्तरीय चर निजी या सार्वजनिक हो सकते हैं। निजी चर उस मॉड्यूल में सभी प्रक्रियाओं के लिए उपलब्ध हैं और किसी अन्य मॉड्यूल के लिए दृश्यमान नहीं हैं। सार्वजनिक चर एक परियोजना में सभी मॉड्यूल में सभी प्रक्रियाओं को दिखाई देते हैं।
निष्कर्ष
किसी भी प्रोग्रामिंग भाषा में एक चर महत्वपूर्ण है। इस ट्यूटोरियल में, हमने देखा है कि वेरिएबल्स क्या हैं, कैसे घोषित करें और उन्हें प्रोग्राम में कैसे उपयोग करें। हमने विकल्प खोज विधि की भी खोज की, जो स्पष्ट घोषणा के कार्यान्वयन के लिए बाध्य करती है।
विभिन्न प्रकार के चर दायरे जो उपयोगकर्ताओं को यह निर्धारित करने में मदद करते हैं कि चर के किस भाग का उपयोग किया जा सकता है। हमने स्टैटिक वेरिएबल्स के उपयोग को सीखा जो वैरिएबल और कॉन्स्टेंट वैरिएबल के मूल्य को बनाए रखने में मदद करता है जो वैरिएबल के मूल्य को बनाए रखने में मदद करते हैं।
=> स्क्रैच से VBA जानने के लिए यहां जाएं
अनुशंसित पाठ
- एक्सेल VBA ट्यूटोरियल - एक्सेल में VBA का परिचय
- एक्सेल VBA एरे और एरे तरीकों के साथ उदाहरण
- VBA डेटा प्रकार - VBA में संख्यात्मक और गैर-संख्यात्मक डेटा प्रकार
- अजगर चर
- C ++ में चर
- जावा चर और उदाहरणों के साथ उनके प्रकार
- उदाहरणों के साथ C # डेटा प्रकार और चर
- VBScript चर: कैसे घोषित करने और उपयोग करने के लिए चर - VBScript मंद