VBA मा चर र स्थिरताहरू

VBA मा, कुनै पनि अन्य प्रोग्रामिङ भाषामा जस्तै, चर र स्थिरांकहरू कुनै पनि मानहरू भण्डारण गर्न प्रयोग गरिन्छ। नामले संकेत गरे जस्तै, चर परिवर्तन हुन सक्छ, जबकि स्थिरताले निश्चित मानहरू भण्डार गर्दछ।

उदाहरणका लागि, एक स्थिर Pi 3,14159265 को मान भण्डारण गर्दछ... कार्यक्रमको कार्यान्वयनको क्रममा संख्या "Pi" परिवर्तन हुनेछैन, तर यो स्थिर रूपमा यस्तो मान भण्डारण गर्न अझै सुविधाजनक छ।

एकै समयमा, हामी चर प्रयोग गर्न सक्छौं sVAT_दर खरिद गरिएका सामानहरूमा भ्याट दर भण्डारण गर्न। चर मान sVAT_दर खरिद गरिएको उत्पादनको आधारमा फरक हुन सक्छ।

डाटा प्रकारहरू

सबै चर र स्थिरांकहरू एक विशेष डेटा प्रकारका हुन्। तलको तालिकाले सम्भावित मानहरूको विवरण र दायराको साथ VBA मा प्रयोग गरिएका डेटा प्रकारहरू सूचीबद्ध गर्दछ:

डाटा प्रकार आकारविवरणमानको दायरा
बाइट1 बाइटहरूसकारात्मक पूर्णांक; प्रायः बाइनरी डाटाको लागि प्रयोग गरिन्छ0 देखि 255 सम्म
बूलियन2 बाइटहरूसाँचो वा गलत हुन सक्छसही वा गलत
इन्टेगर2 बाइटहरूपूर्ण संख्याहरू (कुनै अंशात्मक भाग छैन)-32 देखि +768 सम्म
लामो4 बाइटहरूठूला पूर्णाङ्कहरू (कुनै अंशात्मक भाग छैन)от -2 147 483 648 до +2 147 483 647
एकल4 बाइटहरूएकल परिशुद्धता फ्लोटिंग बिन्दु संख्या-3.4e38 देखि +3.4e38 सम्म
डबल8 बाइटहरूडबल सटीक फ्लोटिंग बिन्दु संख्या-1.8e308 देखि +1.8e308 सम्म
मुद्रा8 बाइटहरूफ्लोटिंग बिन्दु संख्या, दशमलव स्थानहरूको निश्चित संख्याको साथот -922 337 203 685 477.5808 до +922 337 203 685 477.5807
मिति8 बाइटहरूमिति र समय - प्रकारको मितिको डाटालाई फ्लोटिंग बिन्दु नम्बरद्वारा प्रतिनिधित्व गरिन्छ। यो संख्याको पूर्णांक भागले मिति व्यक्त गर्दछ, र आंशिक भागले समय व्यक्त गर्दछ।जनवरी 1, 100 देखि डिसेम्बर 31, 9999 सम्म
वस्तु4 बाइटहरूवस्तु सन्दर्भकुनै पनि वस्तु सन्दर्भ
घागोपरिवर्तन हुँदैछक्यारेक्टर सेट। स्ट्रिङ प्रकार निश्चित वा चर लम्बाइको हुन सक्छ। चर लम्बाइसँग अधिक प्रयोग गरिन्छनिश्चित लम्बाइ - लगभग 65 वर्ण सम्म। चर लम्बाइ - लगभग 500 बिलियन वर्ण सम्म
विमतपरिवर्तन हुँदैछमिति, फ्लोट वा क्यारेक्टर स्ट्रिङ समावेश हुन सक्छ। यो प्रकारको अवस्थाहरूमा प्रयोग गरिन्छ जहाँ यो अग्रिम थाहा छैन कुन प्रकारको डाटा प्रविष्ट गरिनेछ।संख्या - डबल, स्ट्रिङ - स्ट्रिङ

जाहिर छ, माथिको तालिका प्रयोग गरेर र सही डाटा प्रकार छनोट गरेर, तपाईले मेमोरीलाई आर्थिक रूपमा प्रयोग गर्न सक्नुहुन्छ (उदाहरणका लागि, डेटा प्रकार छान्नुहोस्। इन्टेगर सट्टा लामो or एकल सट्टा डबल)। यद्यपि, अधिक कम्प्याक्ट डेटा प्रकारहरू प्रयोग गर्दा, तपाइँ सावधान रहनु आवश्यक छ कि तपाइँको कोडले तिनीहरूमा असमान रूपमा ठूला मानहरू फिट गर्ने प्रयास गर्दैन।

चर र स्थिरताहरू घोषणा गर्दै

अनुवादक नोट: VBA मा चरको बारेमा बोल्दै, यो एक धेरै महत्त्वपूर्ण बिन्दु उल्लेख गर्न लायक छ। यदि हामीले चर घोषणा गर्छौं तर यसलाई कुनै मान तोक्दैनौं भने, यो पूर्वनिर्धारित मानको साथ सुरु हुन्छ:

• पाठ स्ट्रिङहरू खाली स्ट्रिङहरूसँग प्रारम्भ गरिएका छन्;

संख्याहरू — मान ०;

• चर टाइप गर्नुहोस् बूलियन - गलत;

• मितिहरू - डिसेम्बर 30, 1899।

चर वा स्थिर प्रयोग गर्न सक्नु अघि, यो घोषणा गर्नुपर्छ। यो गर्नको लागि, म्याक्रोमा कोडको निम्न सरल रेखा थप्नुहोस्:

Dim Имя_Переменной As Тип_Данных

कोडको माथिको लाइनमा चर_नाम कोडमा प्रयोग गरिने चरको नाम हो, र डेटा_प्रकार यस लेखमा अलि पहिले दिइएको तालिकाबाट डेटा प्रकारहरू मध्ये एक हो। उदाहरणका लागि:

Dim sVAT_रेट गर्नुहोस् एकल डिम र पूर्णांकको रूपमा

स्थिरांकहरू समान रूपमा घोषित गरिन्छ, तर स्थिरांकहरू घोषणा गर्दा, तिनीहरूको मान तुरुन्तै संकेत गरिनुपर्छ। उदाहरण को लागी, यो जस्तै:

Const iMaxCount = 5000 Const iMaxScore = 100

एक्सेलमा चरहरू घोषणा गर्न आवश्यक छैन। पूर्वनिर्धारित रूपमा, Excel मा प्रविष्ट गरिएका तर घोषित नगरिएका चरहरूको प्रकार हुनेछ विमत र संख्यात्मक र पाठ मान दुवै स्वीकार गर्न सक्षम हुनेछ।

यसैले, प्रोग्रामरले कुनै पनि समयमा नयाँ चर प्रयोग गर्न सक्छ (यद्यपि यो घोषणा गरिएको छैन), र एक्सेलले यसलाई प्रकारको चरको रूपमा व्यवहार गर्नेछ। विमत। यद्यपि, त्यहाँ धेरै कारणहरू छन् किन यो गर्नु हुँदैन:

  1. मेमोरी उपयोग र कम्प्यूटेशनल गति। यदि तपाईँले डेटा प्रकारको सङ्केतको साथ चल घोषणा गर्नुहुन्न भने, पूर्वनिर्धारित रूपमा यो प्रकारमा सेट हुनेछ। विमत। यो डेटा प्रकारले अन्य डेटा प्रकारहरू भन्दा बढी मेमोरी प्रयोग गर्दछ। प्रति चर केही अतिरिक्त बाइटहरू धेरै जस्तो लाग्दैन, तर व्यवहारमा, कार्यक्रमहरूमा हजारौं चरहरू हुन सक्छन् (विशेष गरी एरेहरूसँग काम गर्दा)। तसर्थ, चर द्वारा प्रयोग गरिएको अतिरिक्त मेमोरी जस्तै विमत, प्रकार को चर तुलना इन्टेगर or एकल, एक महत्वपूर्ण रकम सम्म थप्न सक्छ। थप रूपमा, प्रकारका चरहरूसँग सञ्चालनहरू विमत अन्य प्रकारका चरहरूको तुलनामा धेरै ढिलो रूपमा कार्यान्वयन गरिन्छ, क्रमशः, प्रकारको अतिरिक्त हजार चरहरू विमत महत्त्वपूर्ण रूपमा गणना ढिलो गर्न सक्छ।
  2. चर नामहरूमा typos को रोकथाम। यदि सबै चरहरू घोषणा गरिएमा, VBA कथन - प्रयोग गर्न सकिन्छ विकल्प स्पष्ट (हामी यसको बारेमा पछि कुरा गर्नेछौं) सबै अघोषित चरहरू पहिचान गर्नका लागि। यसले गलत तरिकाले लेखिएको चर नामको परिणामको रूपमा कार्यक्रममा त्रुटिको उपस्थिति हटाउँछ। उदाहरणका लागि, नामको चर प्रयोग गरेर sVAT_दर, तपाईले टाइपो गर्न सक्नुहुन्छ र, यो चरलाई मान तोक्न सक्नुहुन्छ, लेख्नुहोस्: "VATRate = 0,175"। यो अब देखि, चर आशा छ sVAT_दर मान 0,175 समावेश हुनुपर्छ - तर पक्कै पनि यो छैन। यदि सबै प्रयोग गरिएका चरहरूको अनिवार्य घोषणाको मोड सक्षम पारिएको छ भने, VBA कम्पाइलरले तुरुन्तै त्रुटि संकेत गर्नेछ, किनकि यसले चर फेला पार्दैन। VATRate घोषणा गर्ने मध्ये।
  3. चरको घोषित प्रकारसँग नमिल्ने मानहरू हाइलाइट गर्दै। यदि तपाइँ एक निश्चित प्रकारको चर घोषणा गर्नुहुन्छ र यसलाई फरक प्रकारको डाटा प्रदान गर्ने प्रयास गर्नुहुन्छ भने, तपाइँले त्रुटि पाउनुहुनेछ, जुन, यदि सही नगरी छोडियो भने, कार्यक्रम क्र्यास हुन सक्छ। पहिलो नजरमा, यो भ्यारीएबलहरू घोषणा नगर्ने राम्रो कारण जस्तो लाग्न सक्छ, तर वास्तवमा, यो भन्दा पहिले यो बाहिर जान्छ कि चरहरू मध्ये एकले गलत डाटा प्राप्त गरेको थियो जुन यो प्राप्त गर्नु पर्ने थियो - धेरै राम्रो! अन्यथा, यदि कार्यक्रम चलिरह्यो भने, परिणामहरू गलत र अप्रत्याशित हुन सक्छन्, र त्रुटिहरूको कारण पत्ता लगाउन धेरै गाह्रो हुनेछ। यो पनि सम्भव छ कि म्याक्रो "सफलतापूर्वक" निष्पादित हुनेछ। नतिजाको रूपमा, त्रुटि बेवास्ता हुनेछ र गलत डाटाको साथ काम जारी रहनेछ!

यस सन्दर्भमा, यो गलत डाटा प्रकार पत्ता लगाउन र कोडमा त्यस्ता त्रुटिहरूलाई सकेसम्म चाँडो सच्याउन वांछनीय छ। यी कारणहरूका लागि, यो सिफारिस गरिन्छ कि तपाइँ VBA म्याक्रो लेख्दा सबै चरहरू घोषणा गर्नुहोस्।

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

अपरेटर विकल्प स्पष्ट VBA कोडमा प्रयोग गरिने सबै चरहरूलाई घोषणा गर्नको लागि, र सङ्कलन गर्दा (कोड कार्यान्वयन सुरु हुनु अघि) त्रुटिहरूको रूपमा सबै अघोषित चरहरूलाई फ्ल्याग गर्दछ। यो अपरेटर लागू गर्न गाह्रो छैन - केवल VBA फाइलको शीर्षमा यो लाइन लेख्नुहोस्:

Option Explicit

यदि तपाइँ सधैं सम्मिलित गर्न चाहनुहुन्छ भने विकल्प स्पष्ट सिर्जना गरिएको प्रत्येक नयाँ VBA मोड्युलको शीर्षमा, यो स्वचालित रूपमा गर्न सकिन्छ। यो गर्न, तपाईंले विकल्प सक्षम गर्न आवश्यक छ चर घोषणा आवश्यक छ VBA सम्पादक सेटिङहरूमा।

यो यस प्रकार गरिन्छ:

  • भिजुअल बेसिक सम्पादक मेनुबाट, क्लिक गर्नुहोस् उपकरण > विकल्प
  • देखिने संवादमा, ट्याब खोल्नुहोस् सम्पादक
  • बक्स जाँच गर्नुहोस् चर घोषणा आवश्यक छ र थिच्नुहोस् OK

सक्षम हुँदा, स्ट्रिङ विकल्प स्पष्ट सिर्जना गरिएको प्रत्येक नयाँ मोड्युलको सुरुमा स्वचालित रूपमा सम्मिलित हुनेछ।

चर र स्थिरताहरूको दायरा

प्रत्येक घोषित चल वा स्थिरताको आफ्नै सीमित दायरा हुन्छ, त्यो हो, कार्यक्रमको सीमित भाग जसमा यो चर अवस्थित छ। दायरा निर्भर गर्दछ जहाँ चर वा स्थिर को घोषणा गरिएको थियो। उदाहरणका लागि, चर लिनुहोस् sVAT_दर, जुन प्रकार्यमा प्रयोग गरिन्छ कुल खर्च। निम्न तालिकाले चर स्कोपिङका लागि दुई विकल्पहरू छलफल गर्दछ sVAT_दरमोड्युलमा दुई फरक स्थितिमा घोषित:

विकल्प स्पष्ट Dim sVAT_Rate as single function Total_Cost() को रूपमा दोहोरो... अन्त्य प्रकार्य
यदि चर sVAT_दर मोड्युलको सुरुमा नै घोषणा गरिएको छ, त्यसपछि यो चरको दायरा सम्पूर्ण मोड्युल हुनेछ (अर्थात चर sVAT_दर यस मोड्युलका सबै प्रक्रियाहरूद्वारा मान्यता प्राप्त हुनेछ)।

त्यसैले, यदि समारोहमा कुल खर्च चर sVAT_दर केहि मान तोकिएको छ, त्यसपछि एउटै मोड्युल भित्र निष्पादित अर्को प्रकार्यले चर प्रयोग गर्नेछ। sVAT_दर एउटै अर्थ संग।

यद्यपि, यदि अर्को मोड्युलमा अवस्थित केही प्रकार्यलाई बोलाइन्छ भने, त्यसको लागि चर sVAT_दर थाहा हुनेछैन।

विकल्प स्पष्ट प्रकार्य Total_Cost() डबल डिम sVAT_Rate को रूपमा एकल... अन्त्य प्रकार्य
यदि चर sVAT_दर समारोहको सुरुमा घोषणा गरियो कुल खर्च, तब यसको दायरा यो प्रकार्यमा मात्र सीमित हुनेछ (अर्थात प्रकार्य भित्र कुल खर्च, तपाईं चर प्रयोग गर्न सक्नुहुन्छ sVAT_दरतर बाहिर होइन)।

प्रयोग गर्ने प्रयास गर्दा sVAT_दर अर्को प्रक्रियामा, VBA कम्पाइलरले त्रुटि रिपोर्ट गर्नेछ किनभने यो चर प्रकार्य बाहिर घोषित गरिएको थिएन कुल खर्च (अपरेटर प्रयोग गरिएको छ विकल्प स्पष्ट).

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

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

तपाईं स्थिरताहरू घोषणा गर्न कीवर्डहरू पनि प्रयोग गर्न सक्नुहुन्छ। सार्वजनिक и निजी, तर कुञ्जी शब्दको सट्टा होइन Const, यसको साथमा।

निम्न उदाहरणहरूले कुञ्जी शब्दहरूको प्रयोग देखाउँछन् सार्वजनिक и निजी चर र स्थिरताहरूमा लागू हुन्छ।

विकल्प स्पष्ट सार्वजनिक sVAT_Rate को रूपमा एकल सार्वजनिक Const iMax_Count = 5000 ...    
यस उदाहरणमा, कुञ्जी शब्द सार्वजनिक चर घोषणा गर्न प्रयोग गरियो sVAT_दर र स्थिरहरू iMax_Count। यसरी घोषित तत्वहरूको दायरा सम्पूर्ण हालको परियोजना हुनेछ।

यसको अर्थ हो sVAT_दर и iMax_Count कुनै पनि परियोजना मोड्युलमा उपलब्ध हुनेछ।

विकल्प स्पष्ट निजी sVAT_Rate as एकल निजी Const iMax_Count = 5000 ...    
यस उदाहरणमा, एक चर घोषणा गर्न sVAT_दर र स्थिरहरू iMax_Count कुञ्जी शब्द प्रयोग गरियो निजी। यी तत्वहरूको दायरा हालको मोड्युल हो।

यसको अर्थ हो sVAT_दर и iMax_Count हालको मोड्युलको सबै प्रक्रियाहरूमा उपलब्ध हुनेछ, तर अन्य मोड्युलहरूमा प्रक्रियाहरूमा उपलब्ध हुनेछैन।

जवाफ छाड्नुस्