एक्सेल मैक्रोज़ में चर और स्थिरांक को समझना

इस लेख में, आप सीखेंगे कि मैक्रोज़ में कौन से स्थिरांक और चर हैं, उनका उपयोग कहाँ किया जा सकता है, और विभिन्न डेटा प्रकारों के बीच मुख्य अंतर क्या है। यह भी पता चलेगा कि स्थिरांक की आवश्यकता क्यों है, यदि आप केवल एक चर लिख सकते हैं और इसे कभी नहीं बदल सकते हैं।

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

यदि आपको एक ही बड़े मान को कई बार उपयोग करने की आवश्यकता हो तो स्थिरांक उपयोगी हो सकते हैं। संख्या को कॉपी करने के बजाय, आप केवल स्थिरांक का नाम लिख सकते हैं। उदाहरण के लिए, आप पीआई को स्टोर करने के लिए निरंतर "पाई" का उपयोग कर सकते हैं, जो एक स्थिर मूल्य है। यह बहुत बड़ा है, और हर बार इसे लिखना या खोजना और कॉपी करना काफी मुश्किल होता है। और इसलिए, यह दो वर्ण लिखने के लिए पर्याप्त है, और परिवेश स्वचालित रूप से वांछित संख्या का उपयोग करता है।

एक्सेल उपयोगकर्ता को समय-समय पर उनमें संग्रहीत मूल्य को बदलने की आवश्यकता होने पर चर घोषित करने की आवश्यकता होती है। उदाहरण के लिए, आप sVAT_Rate नामक एक वैरिएबल सेट कर सकते हैं, जो उत्पाद के लिए वर्तमान VAT दर संग्रहीत करेगा। यदि यह बदलता है, तो आप इसे जल्दी से ठीक कर सकते हैं। यह उन लोगों के लिए विशेष रूप से उपयोगी है जो संयुक्त राज्य में व्यापार करते हैं, जहां कुछ सामान वैट के अधीन नहीं हो सकते हैं (और यह कर भी एक राज्य से दूसरे राज्य में भिन्न होता है)।

जानकारी का प्रकार

प्रत्येक डेटा कंटेनर कई प्रकारों में से एक हो सकता है। यहां मानक प्रकार की संसाधित जानकारी का वर्णन करने वाली एक तालिका है। उनमें से कई हैं, और शुरुआत में ऐसा लग सकता है कि वे एक-दूसरे को दोहराते हैं। लेकिन यह एक भ्रांतिपूर्ण अनुभूति है। यह जानने के लिए पढ़ें कि सही डेटा प्रकार निर्दिष्ट करना इतना महत्वपूर्ण क्यों है।

डेटा प्रकार का उपयोग करने की अनुशंसा नहीं की जाती है जो छोटी संख्याओं के लिए स्मृति में अधिक स्थान लेता है। उदाहरण के लिए, संख्या 1 के लिए, बाइट प्रकार का उपयोग करना पर्याप्त है। इसका निष्पादन योग्य मॉड्यूल के प्रदर्शन पर सकारात्मक प्रभाव पड़ेगा, खासकर कमजोर कंप्यूटरों पर। लेकिन यह महत्वपूर्ण है कि यहां बहुत दूर न जाएं। यदि आप एक डेटा प्रकार का उपयोग करते हैं जो बहुत कॉम्पैक्ट है, तो हो सकता है कि एक बड़ा मान उसमें फिट न हो।

स्थिरांक और चर घोषित करना

पहले घोषित किए बिना डेटा कंटेनर का उपयोग करना दृढ़ता से हतोत्साहित किया जाता है। फिर कई समस्याएं उत्पन्न हो सकती हैं, जिनसे बचने के लिए चर या स्थिरांक की गणना के साथ कोड की कुछ छोटी पंक्तियाँ लिखना आवश्यक है।

एक वैरिएबल घोषित करने के लिए, डिम स्टेटमेंट का उपयोग किया जाता है। उदाहरण के लिए, इस तरह:

मंद चर_नाम पूर्णांक के रूप में

Variable_Name वेरिएबल का नाम है। इसके बाद, As ऑपरेटर लिखा जाता है, जो डेटा प्रकार को दर्शाता है। स्ट्रिंग्स "Variable_Name" और "Integer" के बजाय, आप अपना स्वयं का नाम और डेटा प्रकार सम्मिलित कर सकते हैं।

स्थिरांक भी घोषित किए जा सकते हैं, लेकिन आपको पहले उनका मान निर्दिष्ट करना होगा। विकल्पों में से एक है:

कास्ट आईमैक्सकाउंट = 5000

निष्पक्षता में, कुछ मामलों में आप एक चर घोषित किए बिना कर सकते हैं, लेकिन इस मामले में उन्हें स्वचालित रूप से प्रकार का प्रकार सौंपा जाएगा। हालांकि, निम्नलिखित कारणों से इसकी अनुशंसा नहीं की जाती है:

  1. संस्करण को बहुत अधिक धीरे-धीरे संसाधित किया जाता है, और यदि ऐसे कई चर हैं, तो कमजोर कंप्यूटरों पर सूचना प्रसंस्करण को काफी धीमा किया जा सकता है। ऐसा लगता है कि वे सेकंड तय करेंगे? लेकिन अगर आपको बड़ी संख्या में कोड की लाइनें लिखनी हैं, और फिर इसे कमजोर कंप्यूटरों पर भी चलाना है (जो अभी भी बेचे जाते हैं, यह देखते हुए कि आधुनिक ऑफिस सूट में बहुत अधिक रैम की आवश्यकता होती है), आप काम को पूरी तरह से रोक सकते हैं। ऐसे मामले हैं जब मैक्रोज़ के गलत तरीके से लिखने के कारण स्मार्टबुक्स फ्रीज हो जाती हैं जिनमें रैम की मात्रा कम होती है और जटिल कार्यों को करने के लिए डिज़ाइन नहीं की जाती हैं। 
  2. नामों में गलत छापों की अनुमति है, जिसे विकल्प स्पष्ट कथन का उपयोग करके रोका जा सकता है, जो आपको एक अघोषित चर खोजने की अनुमति देता है, यदि कोई पाया जाता है। त्रुटियों का पता लगाने का यह एक आसान तरीका है, क्योंकि थोड़ी सी भी टाइपो के कारण दुभाषिया चर की पहचान करने में असमर्थ हो जाता है। और यदि आप चर घोषणा मोड चालू करते हैं, तो दुभाषिया आपको मैक्रो चलाने की अनुमति नहीं देगा यदि डेटा कंटेनर पाए जाते हैं जो मॉड्यूल की शुरुआत में घोषित नहीं किए गए थे।
  3. डेटा प्रकार से मेल न खाने वाले चर मानों के कारण होने वाली त्रुटियों से बचें। आम तौर पर, एक पूर्णांक चर के लिए एक पाठ मान निर्दिष्ट करने से एक त्रुटि होगी। हां, एक ओर, एक सामान्य प्रकार को बिना घोषणा के सौंपा जाता है, लेकिन यदि उन्हें पहले से घोषित किया जाता है, तो यादृच्छिक त्रुटियों से बचा जा सकता है।

इसलिए, सब कुछ के बावजूद, एक्सेल मैक्रोज़ में सभी चर घोषित करने की अत्यधिक अनुशंसा की जाती है।

चर घोषित करते समय एक और बात का ध्यान रखना चाहिए। घोषित करते समय किसी चर को कोई मान निर्दिष्ट नहीं करना संभव है, लेकिन इस मामले में यह एक डिफ़ॉल्ट मान प्राप्त करता है। उदाहरण के लिए:

  1. लाइनें खाली कर दी जाती हैं।
  2. संख्याएँ मान 0 पर लेती हैं।
  3. बूलियन प्रकार के चर को शुरू में असत्य माना जाता है।
  4. डिफ़ॉल्ट तिथि 30 दिसंबर, 1899 है।

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

विकल्प स्पष्ट वक्तव्य

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

यदि आपको हर बार इस कथन को अपने कोड में शामिल करने की आवश्यकता है, तो आप VBA संपादक में एक विशेष सेटिंग का उपयोग करके ऐसा कर सकते हैं। इस विकल्प को सक्षम करने के लिए, आपको यह करना होगा:

  1. पथ के साथ विकास पर्यावरण पर जाएं - उपकरण> विकल्प।
  2. इसके बाद खुलने वाली विंडो में एडिटर टैब को ओपन करें।
  3. और अंत में, वेरिएबल डिक्लेरेशन आइटम की आवश्यकता के बगल में स्थित बॉक्स को चेक करें।

इन चरणों को पूरा करने के बाद, "ओके" बटन पर क्लिक करें। 

बस इतना ही, अब प्रत्येक नए मैक्रो को लिखते समय, यह लाइन स्वचालित रूप से कोड के शीर्ष पर डाली जाएगी।

स्थिरांक और चर का दायरा

प्रत्येक चर या स्थिरांक का केवल एक सीमित दायरा होता है। यह निर्भर करता है कि आप इसे कहां घोषित करते हैं।

मान लीजिए हमारे पास एक फ़ंक्शन है कुल लागत(), और यह चर का उपयोग करता है sVAT_दर. मॉड्यूल में स्थिति के आधार पर, इसका एक अलग दायरा होगा:

विकल्प स्पष्ट

मंद sVAT_एकल के रूप में दर

फंक्शन Total_Cost () डबल के रूप में

.

.

.

अंत समारोह

यदि मॉड्यूल के शीर्ष पर एक चर घोषित किया जाता है, तो यह पूरे मॉड्यूल में फैलता है। यानी इसे हर प्रक्रिया से पढ़ा जा सकता है।

इसके अलावा, यदि प्रक्रियाओं में से एक ने चर के मूल्य को बदल दिया है, तो अगला भी इस सही मूल्य को पढ़ेगा। लेकिन अन्य मॉड्यूल में यह चर अभी भी नहीं पढ़ा जाएगा।

विकल्प स्पष्ट

फंक्शन Total_Cost () डबल के रूप में

मंद sVAT_एकल के रूप में दर

   .

   .

   .

अंत समारोह

इस मामले में, चर प्रक्रिया के अंदर घोषित किया जाता है, और दुभाषिया एक त्रुटि फेंक देगा यदि इसे किसी अन्य प्रक्रिया में उपयोग किया जाता है।

यदि आप चाहते हैं कि वेरिएबल को अन्य मॉड्यूल द्वारा पढ़ा जाए, तो आपको डिम कीवर्ड के बजाय सार्वजनिक कीवर्ड का उपयोग करना चाहिए। इसी तरह, आप पब्लिक स्टेटमेंट का उपयोग करके एक वेरिएबल के दायरे को केवल वर्तमान मॉड्यूल तक सीमित कर सकते हैं, जो कि डिम शब्द के बजाय लिखा गया है।

आप इसी तरह से स्थिरांक का दायरा निर्धारित कर सकते हैं, लेकिन यहां कीवर्ड कॉन्स्ट ऑपरेटर के साथ मिलकर लिखा गया है।

यहां एक तालिका है जिसमें एक अच्छा उदाहरण है कि यह स्थिरांक और चर के साथ कैसे काम करता है।

विकल्प स्पष्ट

सार्वजनिक sVAT_एकल के रूप में दर

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

इस उदाहरण में, आप देख सकते हैं कि सार्वजनिक कीवर्ड का उपयोग किसी चर को घोषित करने के लिए कैसे किया जाता है, और सार्वजनिक स्थिरांक घोषित करने के लिए आपको Visual Basic संपादक में क्या लिखने की आवश्यकता है। इन मूल्य कंटेनरों का दायरा सभी मॉड्यूल पर लागू होता है।
विकल्प स्पष्ट

निजी sVAT_एकल के रूप में दर

निजी कॉन्स्ट iMax_Count = 5000

यहां, निजी कीवर्ड का उपयोग करके चर और स्थिरांक घोषित किए जाते हैं। इसका मतलब है कि उन्हें केवल वर्तमान मॉड्यूल के भीतर ही देखा जा सकता है, और अन्य मॉड्यूल में प्रक्रियाएं उनका उपयोग नहीं कर सकती हैं।

स्थिरांक और चर की आवश्यकता क्यों है

स्थिरांक और चर का उपयोग आपको कोड की समझ की डिग्री बढ़ाने की अनुमति देता है। और अगर सामान्य तौर पर शुरुआती लोगों के पास यह सवाल नहीं है कि चर की आवश्यकता क्यों है, तो स्थिरांक की आवश्यकता के बारे में कई अस्पष्टताएं हैं। और यह सवाल पहली नज़र में काफी तार्किक लगता है। आखिरकार, आप एक बार एक चर घोषित कर सकते हैं और इसे फिर कभी नहीं बदल सकते।

उत्तर एक ही विमान में कहीं न कहीं डेटा प्रकारों के उपयोग के संबंध में निकलता है जो स्मृति में एक बड़ी जगह घेरते हैं। यदि हम बड़ी संख्या में चर के साथ काम कर रहे हैं, तो हम गलती से मौजूदा कंटेनर को बदल सकते हैं। यदि उपयोगकर्ता निर्धारित करता है कि एक निश्चित मूल्य कभी नहीं बदलेगा, तो पर्यावरण स्वचालित रूप से इसे नियंत्रित करेगा।

यह विशेष रूप से महत्वपूर्ण है जब मैक्रो कई प्रोग्रामर द्वारा लिखा जाता है। कोई यह जान सकता है कि कुछ चर नहीं बदलना चाहिए। और दूसरा नहीं है। यदि आप कॉन्स्ट ऑपरेटर निर्दिष्ट करते हैं, तो दूसरे डेवलपर को पता चल जाएगा कि यह मान नहीं बदलता है।

या, यदि एक नाम के साथ कोई स्थिरांक है, और चर का एक अलग, लेकिन समान नाम है। डेवलपर बस उन्हें भ्रमित कर सकता है। उदाहरण के लिए, एक चर जिसे बदलने की आवश्यकता नहीं है उसे चर 11 कहा जाता है, और दूसरा जिसे संपादित किया जा सकता है उसे चर 1 कहा जाता है। एक व्यक्ति स्वचालित रूप से, कोड लिखते समय, गलती से एक अतिरिक्त इकाई को छोड़ सकता है और उसे नोटिस नहीं कर सकता है। नतीजतन, मूल्यों के लिए कंटेनर बदल जाएगा, जिसे छुआ नहीं जाना चाहिए।

या डेवलपर खुद भूल सकता है कि वह किन चरों को छू सकता है और कौन सा नहीं। ऐसा अक्सर तब होता है जब कोड कई हफ्तों तक लिखा जाता है, और उसका आकार बड़ा हो जाता है। इस समय के दौरान, यह या उस चर का क्या अर्थ है, यह भी भूलना बहुत आसान है।

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

निष्कर्ष

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

स्थिरांक का उपयोग किया जाना चाहिए यदि डेवलपर यह सुनिश्चित करने के लिए जानता है कि इन कंटेनरों की सामग्री भविष्य में नहीं बदलेगी। इसके बजाय चर का उपयोग न करने की अनुशंसा की जाती है, क्योंकि गलती से गलती करना संभव है।

एक जवाब लिखें