অ্যাপ্লিকেশনের জন্য ভিজ্যুয়াল বেসিকের অ্যারে

অ্যাপ্লিকেশনের জন্য ভিজ্যুয়াল বেসিকের অ্যারেগুলি এমন কাঠামো যা সাধারণত একই ধরণের সম্পর্কিত ভেরিয়েবলের সেট সংরক্ষণ করে। অ্যারে এন্ট্রিগুলি তাদের সংখ্যাসূচক সূচক দ্বারা অ্যাক্সেস করা হয়।

উদাহরণস্বরূপ, 20 জনের একটি দল রয়েছে যাদের নাম VBA কোডে পরবর্তীতে ব্যবহারের জন্য সংরক্ষণ করতে হবে। প্রতিটি নাম ধরে রাখার জন্য কেউ কেবল 20টি ভেরিয়েবল ঘোষণা করতে পারে, যেমন:

Dim Team_Member1 As String Dim Team_Member2 As String... Dim Team_Member20 as String

কিন্তু আপনি আরও সহজ এবং আরও সংগঠিত উপায় ব্যবহার করতে পারেন - 20টি ভেরিয়েবলের অ্যারেতে দলের সদস্যদের নামের একটি তালিকা সংরক্ষণ করুন স্ট্রিং:

ডিম টিম_মেম্বারস(1 থেকে 20) স্ট্রিং হিসাবে

উপরে দেখানো লাইনে, আমরা একটি অ্যারে ঘোষণা করেছি। এখন এর প্রতিটি উপাদানের একটি মান লিখি, যেমন:

Team_Members(1) = "জন স্মিথ"

পৃথক ভেরিয়েবল ব্যবহারের তুলনায় একটি অ্যারেতে ডেটা সংরক্ষণের একটি অতিরিক্ত সুবিধা স্পষ্ট হয়ে ওঠে যখন অ্যারের প্রতিটি উপাদানে একই ক্রিয়া সম্পাদন করা প্রয়োজন হয়। যদি দলের সদস্যদের নাম 20টি পৃথক ভেরিয়েবলের মধ্যে সংরক্ষণ করা হয়, তাহলে তাদের প্রতিটিতে একই ক্রিয়া সম্পাদন করতে প্রতিবার লিখতে 20 লাইনের কোড লাগবে। যাইহোক, যদি নামগুলি একটি অ্যারেতে সংরক্ষণ করা হয়, তাহলে আপনি একটি সাধারণ লুপ ব্যবহার করে তাদের প্রত্যেকের সাথে পছন্দসই কাজ সম্পাদন করতে পারেন।

এটি কীভাবে কাজ করে তা নীচে একটি কোড উদাহরণ সহ প্রদর্শিত হয়েছে যা কলামের কক্ষগুলিতে ক্রমানুসারে প্রতিটি দলের সদস্যের নাম মুদ্রণ করে। A সক্রিয় এক্সেল ওয়ার্কশীট।

i = 1 থেকে 20 কোষের জন্য (i,1)। মান = Team_Members(i) পরবর্তী i

স্পষ্টতই, 20টি নাম সঞ্চয় করে এমন একটি অ্যারের সাথে কাজ করা 20টি পৃথক ভেরিয়েবল ব্যবহার করার চেয়ে অনেক কম কষ্টকর এবং আরও সঠিক। কিন্তু এই নামগুলো যদি 20টি নয়, 1000টি হয়? এবং যদি, উপরন্তু, আলাদাভাবে উপাধি এবং পৃষ্ঠপোষকতা রাখা প্রয়োজন?! এটা স্পষ্ট যে শীঘ্রই একটি অ্যারের সাহায্য ছাড়া VBA কোডে এত পরিমাণ ডেটা পরিচালনা করা সম্পূর্ণরূপে অসম্ভব হয়ে উঠবে।

এক্সেল ভিজ্যুয়াল বেসিকের বহুমাত্রিক অ্যারে

উপরে আলোচিত ভিজ্যুয়াল বেসিক অ্যারেগুলিকে এক-মাত্রিক হিসাবে বিবেচনা করা হয়। এর মানে হল যে তারা নামের একটি সহজ তালিকা সংরক্ষণ করে। যাইহোক, অ্যারের একাধিক মাত্রা থাকতে পারে। উদাহরণস্বরূপ, একটি দ্বি-মাত্রিক অ্যারে মানগুলির একটি গ্রিডের সাথে তুলনা করা যেতে পারে।

ধরা যাক আপনি 5টি ভিন্ন দলের জন্য জানুয়ারির দৈনিক বিক্রয় পরিসংখ্যান সংরক্ষণ করতে চান। এর জন্য 5 দিনের জন্য মেট্রিক্সের 31 সেট সমন্বিত একটি দ্বি-মাত্রিক বিন্যাসের প্রয়োজন হবে। এর মত একটি অ্যারে ঘোষণা করা যাক:

Dim Jan_Sales_Figures(1 থেকে 31, 1 থেকে 5) মুদ্রা হিসাবে

অ্যারে উপাদান অ্যাক্সেস করতে জন_বিক্রয়_পরিসংখ্যান, আপনাকে মাসের দিন এবং কমান্ড নম্বর নির্দেশ করে দুটি সূচক ব্যবহার করতে হবে। উদাহরণস্বরূপ, বিক্রয় পরিসংখ্যান ধারণকারী একটি উপাদানের ঠিকানা 2-ওহ জন্য দল 15 তম জানুয়ারি এভাবে লেখা হবে:

জন_বিক্রয়_পরিসংখ্যান(15, 2)

একইভাবে, আপনি 3 বা তার বেশি মাত্রা সহ একটি অ্যারে ঘোষণা করতে পারেন – শুধু অ্যারের ঘোষণায় অতিরিক্ত মাত্রা যোগ করুন এবং এই অ্যারের উপাদানগুলি উল্লেখ করতে অতিরিক্ত সূচক ব্যবহার করুন।

এক্সেল ভিজ্যুয়াল বেসিকে অ্যারে ঘোষণা করা

এই নিবন্ধের আগে, আমরা ইতিমধ্যেই ভিবিএ-তে অ্যারে ঘোষণার বেশ কয়েকটি উদাহরণ দেখেছি, তবে এই বিষয়টি আরও ঘনিষ্ঠভাবে দেখার দাবি রাখে। দেখানো হিসাবে, একটি এক-মাত্রিক অ্যারে এই মত ঘোষণা করা যেতে পারে:

ডিম টিম_মেম্বারস(1 থেকে 20) স্ট্রিং হিসাবে

এই ধরনের একটি ঘোষণা VBA কম্পাইলারকে বলে যে অ্যারে দলের সদস্যরা 20টি ভেরিয়েবল নিয়ে গঠিত যা 1 থেকে 20 পর্যন্ত সূচকে অ্যাক্সেস করা যেতে পারে। যাইহোক, আমরা আমাদের অ্যারে ভেরিয়েবলগুলিকে 0 থেকে 19 পর্যন্ত সংখ্যা করার কথা ভাবতে পারি, এই ক্ষেত্রে অ্যারেটিকে এভাবে ঘোষণা করা উচিত:

ডিম টিম_মেম্বারস(0 থেকে 19) স্ট্রিং হিসাবে

প্রকৃতপক্ষে, ডিফল্টরূপে, অ্যারের উপাদানগুলির সংখ্যা 0 থেকে শুরু হয় এবং অ্যারের ঘোষণায়, প্রাথমিক সূচকটি মোটেই নির্দিষ্ট করা নাও হতে পারে, যেমন:

Dim Team_Members(19) স্ট্রিং হিসাবে

VBA কম্পাইলার এমন একটি এন্ট্রিকে 20 থেকে 0 পর্যন্ত সূচক সহ 19টি উপাদানের একটি অ্যারে ঘোষণা করার মতো বিবেচনা করবে।

বহুমাত্রিক ভিজ্যুয়াল বেসিক অ্যারে ঘোষণা করার সময় একই নিয়ম প্রযোজ্য। যেমনটি ইতিমধ্যে একটি উদাহরণে দেখানো হয়েছে, একটি দ্বি-মাত্রিক অ্যারে ঘোষণা করার সময়, এর মাত্রাগুলির সূচকগুলি একটি কমা দ্বারা পৃথক করা হয়:

Dim Jan_Sales_Figures(1 থেকে 31, 1 থেকে 5) মুদ্রা হিসাবে

যাইহোক, যদি আপনি অ্যারের উভয় মাত্রার জন্য একটি প্রারম্ভিক সূচক নির্দিষ্ট না করেন এবং এটিকে এভাবে ঘোষণা করেন:

Dim Jan_Sales_Figures(31, 5) মুদ্রা হিসাবে

তাহলে এই এন্ট্রিটিকে একটি দ্বি-মাত্রিক অ্যারে হিসাবে গণ্য করা হবে, যার প্রথম মাত্রায় 32 থেকে 0 পর্যন্ত সূচক সহ 31টি উপাদান রয়েছে এবং অ্যারের দ্বিতীয় মাত্রাটিতে 6 থেকে 0 পর্যন্ত সূচক সহ 5টি উপাদান রয়েছে৷

গতিশীল অ্যারে

উপরের উদাহরণগুলির সমস্ত অ্যারেগুলির একটি নির্দিষ্ট সংখ্যক মাত্রা রয়েছে৷ যাইহোক, অনেক ক্ষেত্রেই আমরা আগে থেকে জানি না আমাদের অ্যারের সাইজ কী হওয়া উচিত। আমরা একটি বিশাল অ্যারে ঘোষণা করে পরিস্থিতি থেকে বেরিয়ে আসতে পারি, যার আকার অবশ্যই আমাদের কাজের জন্য প্রয়োজনীয়তার চেয়ে বড় হবে। কিন্তু এই জাতীয় সমাধানের জন্য প্রচুর অতিরিক্ত মেমরির প্রয়োজন হবে এবং প্রোগ্রামটি ধীর করতে পারে। একটি ভাল সমাধান আছে. আমরা একটি ডায়নামিক অ্যারে ব্যবহার করতে পারি - এটি একটি অ্যারে যার আকার একটি ম্যাক্রো চালানোর সময় যেকোন সংখ্যক বার সেট এবং পরিবর্তন করা যেতে পারে।

একটি গতিশীল অ্যারে খালি বন্ধনী সহ ঘোষণা করা হয়, যেমন:

Dim Team_Members() স্ট্রিং হিসাবে

এরপরে, এক্সপ্রেশন ব্যবহার করে কোড এক্সিকিউশনের সময় আপনাকে অ্যারের মাত্রা ঘোষণা করতে হবে রেডিম:

ReDim Team_Members(1 থেকে 20)

এবং যদি কোডটি কার্যকর করার সময় আপনাকে আবার অ্যারের আকার পরিবর্তন করতে হবে, তবে আপনি আবার রেডিম এক্সপ্রেশনটি ব্যবহার করতে পারেন:

যদি Team_Size > 20 তাহলে টিম_সদস্যদের রিডিম করুন (1 থেকে টিম_সাইজ) শেষ হলে

মনে রাখবেন যে এইভাবে একটি ডায়নামিক অ্যারের আকার পরিবর্তন করার ফলে অ্যারেতে সংরক্ষিত সমস্ত মান নষ্ট হয়ে যাবে। ইতিমধ্যে অ্যারেতে ডেটা সংরক্ষণ করার জন্য, আপনাকে কীওয়ার্ড ব্যবহার করতে হবে বাঁচাইয়া রাখানিচে দেখানো হয়েছে:

যদি Team_Size > 20 তাহলে ReDim Preserve Team_Members(1 থেকে Team_Size) শেষ হলে

দুর্ভাগ্যবশত মূলশব্দ বাঁচাইয়া রাখা শুধুমাত্র একটি অ্যারের মাত্রার উপরের সীমানা পরিবর্তন করতে ব্যবহার করা যেতে পারে। একটি অ্যারের নিম্ন সীমানা এভাবে পরিবর্তন করা যাবে না। এছাড়াও, যদি অ্যারের একাধিক মাত্রা থাকে, তাহলে কীওয়ার্ড ব্যবহার করে বাঁচাইয়া রাখা, শুধুমাত্র অ্যারের শেষ মাত্রার আকার পরিবর্তন করা যেতে পারে।

নির্দেশিকা সমন্ধে মতামত দিন