VBA তে For Each Loop এর মাধ্যমে Collection এর সাথে কাজ
VBA তে For Each Loop একটি বিশেষ ধরনের লুপ, যা একটি নির্দিষ্ট কন্টেইনার (যেমন: অ্যারে, কালেকশন বা রেঞ্জ) এর প্রতিটি আইটেমের জন্য একে একে কার্যক্রম চালাতে ব্যবহৃত হয়। এটি এমন কন্টেইনারের সাথে কাজ করতে ব্যবহৃত হয়, যার মধ্যে একাধিক মান বা আইটেম থাকে।
VBA তে Collection একটি ডেটা টাইপ যা একাধিক মান সংরক্ষণ করার জন্য ব্যবহৃত হয়। For Each লুপ ব্যবহার করে আপনি একটি কালেকশনের সব আইটেমকে এক এক করে অ্যাক্সেস করতে পারেন এবং সেই আইটেমগুলোর উপর কাজ করতে পারেন।
Collection কী?
VBA তে Collection একটি অবজেক্ট যা একাধিক আইটেমের সংগ্রহ ধারণ করতে পারে, যেমন স্ট্রিং, ইন্টিজার বা অন্য কোনো ডেটা টাইপ। এক একটি Collection এর মধ্যে আইটেমগুলো ধারাবাহিকভাবে থাকে, এবং সেগুলোকে সহজেই For Each লুপ ব্যবহার করে অ্যাক্সেস করা যায়।
For Each Loop ব্যবহার করে Collection এর সাথে কাজ
For Each লুপ ব্যবহার করে একটি Collection এর প্রতিটি আইটেমের উপর কার্যক্রম পরিচালনা করা হয়। এর সিনট্যাক্স:
For Each item In collection
' কোড এখানে চলে
Next itemএখানে:
itemহলো একটি ভেরিয়েবল যা একে একে Collection এর প্রতিটি আইটেম ধারণ করবে।collectionহলো ঐ Collection এর নাম, যার মধ্যে আইটেমগুলো থাকে।
উদাহরণ: Collection ব্যবহার করে For Each লুপ
ধরা যাক, আমাদের একটি Collection তৈরি করতে হবে, যেখানে কিছু নাম থাকবে, এবং আমরা For Each লুপ ব্যবহার করে সেই নামগুলোকে প্রদর্শন করতে চাই।
কোড উদাহরণ:
Sub ForEachExample()
Dim names As Collection
Dim name As Variant
' একটি নতুন Collection তৈরি
Set names = New Collection
' Collection এ কিছু মান যোগ করা
names.Add "John"
names.Add "Jane"
names.Add "David"
names.Add "Sarah"
' For Each লুপ দিয়ে Collection এর প্রতিটি আইটেম প্রদর্শন
For Each name In names
MsgBox name
Next name
End Subএখানে:
- আমরা একটি Collection তৈরি করেছি এবং তার মধ্যে কিছু নাম (স্ট্রিং) যোগ করেছি।
- তারপর For Each লুপ ব্যবহার করে
namesকালেকশনের প্রতিটি আইটেমকে (নামগুলো) একে একে প্রদর্শন করেছি।
আউটপুট:
- প্রথমে "John" প্রদর্শিত হবে,
- তারপর "Jane",
- তারপর "David", এবং
- অবশেষে "Sarah"।
Collection এ আইটেম যোগ এবং মুছে ফেলা
আপনি For Each লুপের মাধ্যমে Collection এর আইটেমগুলো পরিবর্তন বা মুছতে পারবেন না, কারণ Collection এ For Each লুপের মাধ্যমে শুধুমাত্র আইটেম অ্যাক্সেস করা যায়। তবে আপনি Collection এ নতুন আইটেম যোগ করতে বা আইটেম মুছতে পারেন নিচের পদ্ধতিতে:
আইটেম যোগ করা:
names.Add "Michael" ' Collection এ নতুন আইটেম যোগ করাআইটেম মুছে ফেলা:
names.Remove 1 ' প্রথম আইটেমটি মুছে ফেলাFor Each Loop ব্যবহার করে Range এর সাথে কাজ
আপনি For Each লুপ ব্যবহার করে Range এর প্রতিটি সেলের উপরও কাজ করতে পারেন। উদাহরণস্বরূপ, যদি আপনি একটি রেঞ্জের প্রতিটি সেলের মান পরিবর্তন করতে চান, তাহলে আপনি For Each লুপ ব্যবহার করে রেঞ্জের প্রতিটি সেল একে একে পরিবর্তন করতে পারেন।
কোড উদাহরণ:
Sub ForEachRangeExample()
Dim cell As Range
' এক্সেল শিটের A1 থেকে A5 পর্যন্ত রেঞ্জ নির্ধারণ
For Each cell In Range("A1:A5")
cell.Value = "Hello" ' প্রতিটি সেলের মান পরিবর্তন
Next cell
End Subএখানে, রেঞ্জ A1:A5 এর প্রতিটি সেলের মান "Hello" দ্বারা পরিবর্তিত হবে।
সারাংশ
- For Each লুপ একটি খুবই উপকারী টুল যা একটি Collection বা Range এর প্রতিটি আইটেম বা সেলের সাথে কাজ করার জন্য ব্যবহৃত হয়।
- এটি ব্যবহারের মাধ্যমে আপনি সহজে একটি কালেকশনের আইটেমের উপর কার্যক্রম চালাতে পারেন, যেমন: মান প্রদর্শন, মান পরিবর্তন বা অন্য কোনো কাজ।
- Collection হলো এমন একটি অবজেক্ট যেখানে একাধিক আইটেম সংরক্ষণ করা যায় এবং এগুলোর উপর For Each লুপ ব্যবহার করে কাজ করা যায়।
Read more