अॅप्लिकेशनसाठी व्हिज्युअल बेसिकमधील अॅरे

अॅप्लिकेशनसाठी व्हिज्युअल बेसिकमधील अॅरे ही अशी रचना आहेत जी सामान्यत: समान प्रकारच्या संबंधित व्हेरिएबल्सचे संच संग्रहित करतात. अ‍ॅरे एंट्री त्यांच्या संख्यात्मक निर्देशांकाद्वारे ऍक्सेस केल्या जातात.

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

मंद टीम_सदस्य1 स्ट्रिंग म्हणून मंद टीम_सदस्य2 स्ट्रिंग म्हणून ... मंद Team_Member20 स्ट्रिंग म्हणून

परंतु तुम्ही खूप सोपा आणि अधिक संघटित मार्ग वापरू शकता - टीम सदस्यांच्या नावांची सूची 20 व्हेरिएबल्सच्या अॅरेमध्ये संग्रहित करा जसे की अक्षरमाळा:

मंद टीम_सदस्य(1 ते 20) स्ट्रिंग म्हणून

वर दर्शविलेल्या ओळीत, आम्ही अॅरे घोषित केले आहे. आता त्यातील प्रत्येक घटकाचे मूल्य असे लिहूया:

Team_Members(1) = "जॉन स्मिथ"

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

ते कसे कार्य करते ते खाली एका कोड उदाहरणासह प्रदर्शित केले आहे जे स्तंभ सेलमध्ये अनुक्रमे प्रत्येक कार्यसंघ सदस्याची नावे मुद्रित करते. A सक्रिय एक्सेल वर्कशीट.

i = 1 ते 20 सेलसाठी(i,1).मूल्य = Team_Members(i) पुढील i

स्पष्टपणे, 20 नावे संग्रहित करणार्‍या अॅरेसह काम करणे 20 स्वतंत्र व्हेरिएबल्स वापरण्यापेक्षा खूपच कमी त्रासदायक आणि अधिक अचूक आहे. पण ही नावे 20 नसून 1000 असतील तर? आणि त्याव्यतिरिक्त, आडनाव आणि आश्रयस्थान वेगळे ठेवणे आवश्यक असल्यास?! हे स्पष्ट आहे की अॅरेच्या मदतीशिवाय व्हीबीए कोडमधील डेटाचा इतका खंड हाताळणे लवकरच पूर्णपणे अशक्य होईल.

एक्सेल व्हिज्युअल बेसिकमधील बहुआयामी अॅरे

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

समजा तुम्हाला 5 वेगवेगळ्या संघांसाठी जानेवारीचे दैनंदिन विक्रीचे आकडे सेव्ह करायचे आहेत. यासाठी 5 दिवसांसाठी मेट्रिक्सचे 31 संच असलेले द्विमितीय अॅरे आवश्यक असेल. चला अशा प्रकारे अॅरे घोषित करूया:

मंद जन_विक्री_आकडे (१ ते ३१, १ ते ५) चलन म्हणून

अॅरे घटकांमध्ये प्रवेश करण्यासाठी जन_विक्री_आकडे, आपल्याला महिन्याचा दिवस आणि आदेश क्रमांक दर्शविणारी दोन अनुक्रमणिका वापरण्याची आवश्यकता आहे. उदाहरणार्थ, विक्रीचे आकडे असलेल्या घटकाचा पत्ता 2-अरे साठी संघ 15 व्या जानेवारी असे लिहिले जाईल:

जन_विक्री_आकडे(१५, २)

त्याच प्रकारे, तुम्ही 3 किंवा अधिक परिमाणांसह अॅरे घोषित करू शकता - फक्त अॅरे डिक्लेरेशनमध्ये अतिरिक्त परिमाणे जोडा आणि या अॅरेच्या घटकांचा संदर्भ घेण्यासाठी अतिरिक्त निर्देशांक वापरा.

एक्सेल व्हिज्युअल बेसिकमध्ये अॅरे घोषित करणे

यापूर्वी या लेखात, आम्ही आधीच VBA मध्ये अॅरे घोषित करण्याच्या अनेक उदाहरणे पाहिली आहेत, परंतु हा विषय जवळून पाहण्यास पात्र आहे. दर्शविल्याप्रमाणे, एक-आयामी अॅरे याप्रमाणे घोषित केले जाऊ शकते:

मंद टीम_सदस्य(1 ते 20) स्ट्रिंग म्हणून

अशी घोषणा VBA कंपाइलरला सांगते की अॅरे संघ सदस्य 20 ते 1 पर्यंतच्या निर्देशांकांवर 20 व्हेरिएबल्सचा समावेश आहे. तथापि, आम्ही आमच्या अॅरे व्हेरिएबल्सला 0 ते 19 पर्यंत क्रमांकित करण्याचा विचार करू शकतो, अशा परिस्थितीत अॅरे याप्रमाणे घोषित केले जावे:

मंद टीम_सदस्य(0 ते 19) स्ट्रिंग म्हणून

खरं तर, डीफॉल्टनुसार, अॅरे घटकांची संख्या 0 पासून सुरू होते आणि अॅरे घोषणामध्ये, प्रारंभिक निर्देशांक अजिबात निर्दिष्ट केला जाऊ शकत नाही, जसे की:

मंद Team_Members(19) स्ट्रिंग म्हणून

VBA कंपाइलर अशा एंट्रीला 20 ते 0 पर्यंतच्या निर्देशांकांसह 19 घटकांचे अॅरे घोषित करण्यासारखे मानेल.

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

मंद जन_विक्री_आकडे (१ ते ३१, १ ते ५) चलन म्हणून

तथापि, जर तुम्ही अ‍ॅरेच्या दोन्ही परिमाणांसाठी प्रारंभिक निर्देशांक निर्दिष्ट केले नाही आणि ते असे घोषित केले:

मंद Jan_Sales_Figures(31, 5) चलन म्हणून

नंतर ही नोंद द्वि-आयामी अॅरे म्हणून मानली जाईल, ज्याच्या पहिल्या परिमाणात 32 ते 0 पर्यंतच्या निर्देशांकांसह 31 घटक आहेत आणि अॅरेच्या दुसऱ्या परिमाणात 6 ते 0 पर्यंत निर्देशांकांसह 5 घटक आहेत.

डायनॅमिक अॅरे

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

डायनॅमिक अॅरे रिक्त कंसांसह घोषित केले जाते, जसे:

मंद Team_Members() स्ट्रिंग म्हणून

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

ReDim Team_Members(1 ते 20)

आणि जर कोडच्या अंमलबजावणीदरम्यान तुम्हाला अॅरेचा आकार पुन्हा बदलण्याची आवश्यकता असेल तर तुम्ही पुन्हा रेडिम एक्सप्रेशन वापरू शकता:

जर Team_Size > 20 तर Team_Members ReDim (1 ते Team_Size) जर समाप्त करा

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

जर Team_Size > 20 तर ReDim Preserve Team_Members(1 to team_size) End if

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

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