एक्सेल मॅक्रोमध्ये व्हेरिएबल्स आणि कॉन्स्टंट्स समजून घेणे

या लेखात, तुम्ही मॅक्रोमध्ये कोणते स्थिरांक आणि चल आहेत, ते कुठे वापरले जाऊ शकतात आणि विविध डेटा प्रकारांमधील मुख्य फरक काय आहे हे जाणून घ्याल. जर तुम्ही फक्त व्हेरिएबल लिहू शकता आणि ते कधीही बदलू शकत नाही तर स्थिरांक का आवश्यक आहेत हे देखील उघड होईल.

इतर प्रोग्रामिंग भाषांप्रमाणे, डेटा व्हेरिएबल्स किंवा स्थिरांकांमध्ये संग्रहित केला जाऊ शकतो (या दोन्हींना डेटा कंटेनर म्हणून देखील संबोधले जाते). या संकल्पनांमधील हा मुख्य फरक आहे. प्रोग्राममध्ये काय होते यावर अवलंबून पूर्वीचे बदलू शकतात. या बदल्यात, स्थिरांक एकदा सेट केले जातात आणि त्यांचे मूल्य बदलत नाहीत.

तुम्हाला समान मोठे मूल्य अनेक वेळा वापरायचे असल्यास स्थिरांक उपयुक्त ठरू शकतात. संख्या कॉपी करण्याऐवजी, तुम्ही फक्त स्थिरांकाचे नाव लिहू शकता. उदाहरणार्थ, आपण Pi संचयित करण्यासाठी स्थिर “Pi” वापरू शकता, जे एक स्थिर मूल्य आहे. ते खूप मोठे आहे आणि प्रत्येक वेळी ते लिहिणे किंवा शोधणे आणि कॉपी करणे खूप कठीण आहे. आणि म्हणून, दोन वर्ण लिहिणे पुरेसे आहे आणि वातावरण आपोआप इच्छित संख्या वापरते.

एक्सेल वापरकर्त्याला व्हेरिएबल्समध्ये वेळोवेळी संग्रहित मूल्य बदलण्याची आवश्यकता असल्यास ते घोषित करणे आवश्यक आहे. उदाहरणार्थ, तुम्ही sVAT_Rate नावाचा व्हेरिएबल सेट करू शकता, जो उत्पादनासाठी सध्याचा व्हॅट दर संचयित करेल. जर ते बदलले तर तुम्ही ते त्वरीत दुरुस्त करू शकता. हे विशेषतः युनायटेड स्टेट्समध्ये व्यवसाय करणार्‍यांसाठी उपयुक्त आहे, जेथे काही वस्तू व्हॅटच्या अधीन नसतील (आणि हा कर देखील राज्यानुसार वेगळा असतो).

डेटा प्रकार

प्रत्येक डेटा कंटेनर अनेक प्रकारांपैकी एक असू शकतो. प्रक्रिया केलेल्या माहितीच्या मानक प्रकारांचे वर्णन करणारी सारणी येथे आहे. त्यापैकी बरेच आहेत आणि सुरुवातीला असे वाटू शकते की ते एकमेकांची पुनरावृत्ती करतात. पण ही एक भ्रामक भावना आहे. योग्य डेटा प्रकार निर्दिष्ट करणे इतके महत्त्वाचे का आहे हे जाणून घेण्यासाठी वाचा.

लहान संख्यांसाठी मेमरीमध्ये अधिक जागा घेणारा डेटा प्रकार वापरण्याची शिफारस केलेली नाही. उदाहरणार्थ, क्रमांक 1 साठी, बाइट प्रकार वापरणे पुरेसे आहे. याचा एक्झिक्युटेबल मॉड्यूलच्या कार्यक्षमतेवर सकारात्मक परिणाम होईल, विशेषत: कमकुवत संगणकांवर. परंतु येथे फार दूर न जाणे महत्वाचे आहे. जर तुम्ही डेटा प्रकार वापरत असाल जो खूप कॉम्पॅक्ट असेल, तर मोठ्या आकाराचे मूल्य त्यात बसणार नाही.

स्थिरांक आणि चल घोषित करणे

प्रथम घोषित न करता डेटा कंटेनर वापरणे जोरदारपणे निरुत्साहित आहे. मग अनेक समस्या उद्भवू शकतात, ज्या टाळण्यासाठी व्हेरिएबल्स किंवा स्थिरांकांच्या गणनेसह कोडच्या काही लहान ओळी लिहिणे आवश्यक आहे.

व्हेरिएबल घोषित करण्यासाठी, डिम स्टेटमेंट वापरले जाते. उदाहरणार्थ, यासारखे:

मंद व्हेरिएबल_नाम पूर्णांक म्हणून

Variable_Name हे व्हेरिएबलचे नाव आहे. पुढे, As ऑपरेटर लिहिलेले आहे, डेटा प्रकार दर्शविते. “Variable_Name” आणि “Integer” या स्ट्रिंग्सऐवजी, तुम्ही तुमचे स्वतःचे नाव आणि डेटा प्रकार टाकू शकता.

स्थिरांक देखील घोषित केले जाऊ शकतात, परंतु आपण प्रथम त्यांचे मूल्य निर्दिष्ट करणे आवश्यक आहे. पर्यायांपैकी एक आहे:

कॉन्स्ट iMaxCount = 5000

निष्पक्षतेने, काही प्रकरणांमध्ये आपण व्हेरिएबल घोषित केल्याशिवाय करू शकता, परंतु या प्रकरणात त्यांना स्वयंचलितपणे प्रकार नियुक्त केला जाईल. तथापि, खालील कारणांसाठी याची शिफारस केलेली नाही:

  1. व्हेरिएंटची प्रक्रिया अधिक हळू केली जाते आणि जर असे बरेच व्हेरिएबल्स असतील तर, कमकुवत संगणकांवर माहिती प्रक्रिया लक्षणीयरीत्या कमी केली जाऊ शकते. असे वाटते की ते सेकंद ठरवतील? परंतु जर तुम्हाला कोडच्या मोठ्या संख्येने ओळी लिहायच्या असतील आणि नंतर ते कमकुवत संगणकांवर देखील चालवा (जे अजूनही विकले जातात, आधुनिक ऑफिस सूटला भरपूर रॅम आवश्यक आहे) तर तुम्ही काम पूर्णपणे थांबवू शकता. अशी काही प्रकरणे आहेत जेव्हा मॅक्रोच्या चुकीच्या कल्पनेने लिहिण्यामुळे स्मार्टबुक गोठवल्या गेल्या ज्यांची RAM कमी आहे आणि जटिल कार्ये करण्यासाठी डिझाइन केलेली नाही. 
  2. नावांमधील चुकीच्या छापांना परवानगी आहे, ज्याला पर्याय स्पष्ट विधान वापरून प्रतिबंधित केले जाऊ शकते, जे तुम्हाला एक अघोषित चल शोधण्याची परवानगी देते, जर एखादे आढळले तर. एरर शोधण्याचा हा एक सोपा मार्ग आहे, कारण थोड्याशा टायपोमुळे दुभाष्याला व्हेरिएबल ओळखता येत नाही. आणि जर तुम्ही व्हेरिएबल डिक्लेरेशन मोड चालू केला, तर मॉड्युलच्या अगदी सुरुवातीला घोषित न केलेले डेटा कंटेनर आढळल्यास इंटरप्रिटर तुम्हाला मॅक्रो चालवण्याची परवानगी देणार नाही.
  3. व्हेरिएबल व्हॅल्यू डेटा प्रकाराशी जुळत नसल्यामुळे झालेल्या त्रुटी टाळा. साधारणपणे, पूर्णांक व्हेरिएबलला मजकूर मूल्य नियुक्त केल्याने त्रुटी येईल. होय, एकीकडे, एक सामान्य प्रकार घोषणेशिवाय नियुक्त केला जातो, परंतु जर ते आगाऊ घोषित केले गेले तर यादृच्छिक त्रुटी टाळल्या जाऊ शकतात.

म्हणून, सर्वकाही असूनही, एक्सेल मॅक्रोमध्ये सर्व व्हेरिएबल्स घोषित करण्याची अत्यंत शिफारस केली जाते.

व्हेरिएबल्स घोषित करताना आणखी एक गोष्ट लक्षात ठेवली पाहिजे. व्हेरिएबल घोषित करताना त्याला कोणतीही मूल्ये नियुक्त न करणे शक्य आहे, परंतु या प्रकरणात ते डीफॉल्ट मूल्य प्राप्त करते. उदाहरणार्थ:

  1. ओळी रिकाम्या केल्या आहेत.
  2. संख्या मूल्य 0 वर घेतात.
  3. बुलियन प्रकारातील व्हेरिएबल्स सुरुवातीला खोटे मानले जातात.
  4. डीफॉल्ट तारीख 30 डिसेंबर 1899 आहे.

उदाहरणार्थ, पूर्वी कोणतेही मूल्य निर्दिष्ट केलेले नसल्यास, तुम्हाला पूर्णांक व्हेरिएबलला मूल्य 0 नियुक्त करण्याची आवश्यकता नाही. तिच्याकडे हा नंबर आधीच आहे.

पर्याय स्पष्ट विधान

हे विधान तुम्हाला VBA कोडमध्ये वापरलेले सर्व चल घोषित करण्यास आणि कोड चालवण्यापूर्वी कोणत्याही अघोषित कंटेनरची उपस्थिती निर्धारित करण्यास अनुमती देते. हे वैशिष्ट्य वापरण्यासाठी, मॅक्रो कोडच्या अगदी शीर्षस्थानी फक्त पर्याय स्पष्ट कोडची एक ओळ लिहा.

तुम्हाला प्रत्येक वेळी तुमच्या कोडमध्ये हे विधान समाविष्ट करायचे असल्यास, तुम्ही VBA संपादकातील विशेष सेटिंग वापरून असे करू शकता. हा पर्याय सक्षम करण्यासाठी, आपण हे करणे आवश्यक आहे:

  1. मार्गावरील विकास वातावरणावर जा - साधने > पर्याय.
  2. यानंतर उघडणाऱ्या विंडोमध्ये एडिटर टॅब उघडा.
  3. आणि शेवटी, आवश्यक व्हेरिएबल डिक्लेरेशन आयटमच्या पुढील बॉक्स चेक करा.

हे चरण पूर्ण केल्यावर, “ओके” बटणावर क्लिक करा. 

बस्स, आता प्रत्येक नवीन मॅक्रो लिहिताना, ही ओळ आपोआप कोडच्या शीर्षस्थानी घातली जाईल.

स्थिरांक आणि चलांची व्याप्ती

प्रत्येक व्हेरिएबल किंवा स्थिरांकाला फक्त मर्यादित व्याप्ती असते. तुम्ही ते कुठे घोषित करता ते अवलंबून आहे.

समजा आपल्याकडे एक फंक्शन आहे एकूण किंमत(), आणि ते व्हेरिएबल वापरते sVAT_Rate. मॉड्यूलमधील स्थानावर अवलंबून, त्यास भिन्न व्याप्ती असेल:

पर्याय स्पष्ट

मंद sVAT_रेट एकल म्हणून

फंक्शन Total_cost() दुप्पट

.

.

.

शेवटचा कार्य

मॉड्यूलच्या शीर्षस्थानी व्हेरिएबल घोषित केले असल्यास, ते संपूर्ण मॉड्यूलमध्ये प्रसारित होते. म्हणजेच, ते प्रत्येक प्रक्रियेद्वारे वाचले जाऊ शकते.

शिवाय, जर एखाद्या प्रक्रियेने व्हेरिएबलचे मूल्य बदलले असेल, तर पुढील एक हे दुरुस्त केलेले मूल्य देखील वाचेल. परंतु इतर मॉड्यूल्समध्ये हे व्हेरिएबल अजूनही वाचले जाणार नाही.

पर्याय स्पष्ट

फंक्शन Total_cost() दुप्पट

मंद sVAT_रेट एकल म्हणून

   .

   .

   .

शेवटचा कार्य

या प्रकरणात, व्हेरिएबल प्रक्रियेच्या आत घोषित केले जाते, आणि दुभाष्या दुसर्‍या प्रक्रियेत वापरल्यास त्रुटी टाकेल.

जर तुम्हाला व्हेरिएबल इतर मॉड्यूल्सद्वारे वाचायचे असेल, तर तुम्ही डिम कीवर्डऐवजी सार्वजनिक कीवर्ड वापरणे आवश्यक आहे. त्याचप्रमाणे, Dim या शब्दाऐवजी लिहिलेले Public Statement वापरून तुम्ही व्हेरिएबलची व्याप्ती फक्त चालू मॉड्यूलपर्यंत मर्यादित करू शकता.

तुम्ही अशाच प्रकारे स्थिरांकांची व्याप्ती सेट करू शकता, परंतु येथे कीवर्ड कॉन्स्ट ऑपरेटरसह एकत्र लिहिलेला आहे.

स्थिरांक आणि चलांसह ते कसे कार्य करते याचे उत्तम उदाहरण असलेले सारणी येथे आहे.

पर्याय स्पष्ट

सार्वजनिक sVAT_रेट एकल म्हणून

सार्वजनिक Const iMax_Count = 5000

या उदाहरणात, तुम्ही पाहू शकता की सार्वजनिक कीवर्ड व्हेरिएबल घोषित करण्यासाठी कसा वापरला जातो आणि सार्वजनिक स्थिरांक घोषित करण्यासाठी तुम्हाला व्हिज्युअल बेसिक एडिटरमध्ये काय लिहावे लागेल. या मूल्याच्या कंटेनरची व्याप्ती सर्व मॉड्यूल्सना लागू होते.
पर्याय स्पष्ट

खाजगी sVAT_रेट एकल म्हणून

खाजगी Const iMax_Count = 5000

येथे, खाजगी कीवर्ड वापरून व्हेरिएबल्स आणि स्थिरांक घोषित केले जातात. याचा अर्थ ते फक्त वर्तमान मॉड्यूलमध्येच पाहिले जाऊ शकतात आणि इतर मॉड्यूलमधील प्रक्रिया त्यांचा वापर करू शकत नाहीत.

स्थिरांक आणि चल का आवश्यक आहेत

स्थिरांक आणि व्हेरिएबल्सचा वापर आपल्याला कोडची समजण्याची क्षमता वाढविण्यास अनुमती देतो. आणि जर सामान्यतः नवशिक्यांना व्हेरिएबल्सची आवश्यकता का आहे याबद्दल प्रश्न नसतील, तर स्थिरांकांच्या गरजेबद्दल अनेक संदिग्धता आहेत. आणि हा प्रश्न पहिल्या दृष्टीक्षेपात अगदी तार्किक वाटतो. शेवटी, तुम्ही एकदा व्हेरिएबल घोषित करू शकता आणि ते पुन्हा कधीही बदलू शकत नाही.

मेमरीमध्ये मोठी जागा व्यापलेल्या डेटा प्रकारांच्या वापरासंदर्भात उत्तर त्याच विमानात कुठेतरी आहे. जर आपण मोठ्या संख्येने व्हेरिएबल्स हाताळत आहोत, तर आपण चुकून विद्यमान कंटेनर बदलू शकतो. जर वापरकर्त्याने ठरवले की विशिष्ट मूल्य कधीही बदलणार नाही, तर पर्यावरण आपोआप यावर नियंत्रण ठेवेल.

हे विशेषतः महत्वाचे आहे जेव्हा मॅक्रो अनेक प्रोग्रामरद्वारे लिहिलेले असते. एखाद्याला माहित असेल की काही व्हेरिएबल बदलू नये. आणि दुसरा नाही. तुम्ही Const ऑपरेटर निर्दिष्ट केल्यास, दुसर्‍या विकासकाला कळेल की हे मूल्य बदलत नाही.

किंवा, जर एका नावासह स्थिरांक असेल आणि व्हेरिएबलचे वेगळे, परंतु समान नाव असेल. विकसक त्यांना फक्त गोंधळात टाकू शकतो. उदाहरणार्थ, एक व्हेरिएबल ज्याला बदलण्याची गरज नाही त्याला व्हेरिएबल 11 म्हणतात, आणि दुसरे बदलले जाऊ शकते त्याला व्हेरिएबल1 म्हणतात. एखादी व्यक्ती आपोआप, कोड लिहिताना, चुकून अतिरिक्त युनिट वगळू शकते आणि ते लक्षात येत नाही. परिणामी, मूल्यांसाठी कंटेनर बदलला जाईल, ज्याला स्पर्श केला जाऊ नये.

किंवा डेव्हलपर स्वतः विसरू शकतो की तो कोणत्या व्हेरिएबल्सला स्पर्श करू शकतो आणि कोणत्या करू शकत नाही. जेव्हा कोड अनेक आठवडे लिहिला जातो आणि त्याचा आकार मोठा होतो तेव्हा हे सहसा घडते. या काळात, हे किंवा ते व्हेरिएबल म्हणजे काय हे विसरणे खूप सोपे आहे.

होय, आपण या परिस्थितीत टिप्पण्यांसह करू शकता, परंतु कॉन्स्ट शब्द निर्दिष्ट करणे सोपे नाही का?

निष्कर्ष

व्हेरिएबल्स हे मॅक्रो प्रोग्रामिंगचे एक आवश्यक घटक आहेत, जे तुम्हाला गणनेपासून वापरकर्त्याला विशिष्ट इव्हेंट्सची माहिती देण्यापर्यंत किंवा स्प्रेडशीटच्या सेलमध्ये विशिष्ट मूल्ये निर्दिष्ट करण्यापर्यंत जटिल ऑपरेशन्स करण्यास अनुमती देतात.

या कंटेनरमधील सामग्री भविष्यात बदलणार नाही हे विकासकाला निश्चितपणे माहित असल्यास स्थिरांकांचा वापर केला पाहिजे. त्याऐवजी व्हेरिएबल्स न वापरण्याची शिफारस केली जाते, कारण चुकून चूक होण्याची शक्यता असते.

प्रत्युत्तर द्या