এই আর্টিকেলে আপনি শিখবেন কীভাবে Range ব্যবহার করে এক্সেলে কলাম নম্বর ভিত্তিক ভিন্ন কাজ করা যায় VBA-র মাধ্যমে।
ওয়ার্কবুক ডাউনলোড করুন
আপনি এখান থেকে ফ্রি প্র্যাকটিস এক্সেল ওয়ার্কবুক ডাউনলোড করতে পারেন।
VBA Range অবজেক্ট
VBA-তে Range অবজেক্ট একটি একক সেল, একাধিক সেল, সারি, কলাম এক্সেল ওয়ার্কশিটের মধ্যে ধারণ করতে পারে।
Range অবজেক্টের হায়ারার্কি নিচের মতো:
Application > Workbook > Worksheet > Range
VBA-তে Range অবজেক্ট ডিক্লেয়ার করার এই পদ্ধতিটি অনুসরণ করুন।
কলাম নম্বর ভিত্তিক এক্সেলে VBA ব্যবহার করে Range-এর ৪টি পদ্ধতি
এই সেকশনে আলোচনা করা হবে কীভাবে কলাম নম্বর অনুযায়ী রেঞ্জ সিলেক্ট করা যায়, কীভাবে কলাম নম্বর অনুযায়ী রেঞ্জে ভ্যালু সেট করা যায় এবং কীভাবে একটি রেঞ্জের লাস্ট কলাম নম্বর রিটার্ন করা যায় এক্সেলে VBA ম্যাক্রো ব্যবহার করে।
১. কলাম নম্বর অনুযায়ী রেঞ্জ সিলেক্ট করার VBA
আপনি যদি নিচের ছবির মত একটি ফাজি ডেটাসেট থেকে কলাম নম্বর অনুযায়ী রেঞ্জ সিলেক্ট করতে চান এক্সেলে, তবে এই আর্টিকেলটি পড়তে থাকুন সমাধান পেতে।
ধাপসমূহ:
- আপনার কীবোর্ডে Alt + F11 চাপুন অথবা Developer -> Visual Basic ট্যাবে যান Visual Basic Editor খোলার জন্য।
- পপ-আপ কোড উইন্ডোতে, মেনুবার থেকে Insert -> Module ক্লিক করুন।
- নিচের কোডটি কপি করে কোড উইন্ডোতে পেস্ট করুন।
Sub SetRange()
Range(Cells(2, 3), Cells(10, 5)).Select
End Sub
এখানে,
- Cells(2,3) = ২য় সারি, ৩য় কলাম (Cell C2)
- Cells(10,5) = ১০ম সারি, ৫ম কলাম (Cell E10)
আপনার কোড এখন রান করার জন্য প্রস্তুত।
- আপনার কীবোর্ডে F5 চাপুন অথবা মেনুবার থেকে Run -> Run Sub/UserForm সিলেক্ট করুন। আপনি সাব-মেনুবারের ছোট Play icon-এ ক্লিক করেও ম্যাক্রো রান করতে পারেন।
সেল রেঞ্জ C2 থেকে E10 সিলেক্ট হবে (নিচের ছবি দেখুন) আমাদের দেওয়া কলাম নম্বর অনুযায়ী।
আরও পড়ুন: VBA Range ভেরিয়েবল সারি নম্বর সহ এক্সেলে (৪ উদাহরণ)
২. কলাম নম্বর অনুযায়ী রেঞ্জে ভ্যালু সেট করার VBA
আপনি আগের সেকশনে শিখেছেন কলাম নম্বর অনুযায়ী রেঞ্জ সিলেক্ট করা। এই সেকশনে আপনি জানবেন কীভাবে কলাম নম্বর অনুযায়ী রেঞ্জে ভ্যালু সেট করা যায়।
ধাপসমূহ:
- আগের মতো Developer ট্যাব থেকে Visual Basic Editor খুলুন এবং কোড উইন্ডোতে Module ইনসার্ট করুন।
- কোড উইন্ডোতে নিচের কোডটি কপি করে পেস্ট করুন।
Sub SetValue()
Range(Cells(2, 2), Cells(8, 4)).Value2 = "Hello!"
End Sub
এখানে,
- Cells(2,2) = ২য় সারি, ২য় কলাম (Cell B2)
- Cells(8,4) = ৮ম সারি, ৪র্থ কলাম (Cell D8)
আপনার কোড এখন রান করার জন্য প্রস্তুত।
- Run করুন ম্যাক্রো এবং B2 থেকে D8 পর্যন্ত সব সেলে এখন "Hello!" ভ্যালু থাকবে।
আরও পড়ুন: এক্সেল VBA: সারি এবং কলাম নম্বর দিয়ে রেঞ্জ সেট করা (৩ উদাহরণ)
সমরূপ পঠন
- এক্সেল VBA: সেল অ্যাড্রেস থেকে সারি এবং কলাম নম্বর পাওয়া (৪ পদ্ধতি)
- সারি এবং কলাম নম্বর দিয়ে এক্সেলে সেল রেফারেন্স করার ৪ পদ্ধতি
- এক্সেলে রেঞ্জের প্রতিটি সেলের জন্য VBA (৩ পদ্ধতি)
- কলাম নম্বরকে লেটারে রূপান্তর করার ৩ উপায় এক্সেলে
- এক্সেলে রেঞ্জ সেট করার VBA (৭ উদাহরণ)
৩. কলাম নম্বর অনুযায়ী ভিন্ন ওয়ার্কশিট থেকে রেঞ্জ সিলেক্ট করার VBA
এখানে আপনি শিখবেন কীভাবে কলাম নম্বর অনুযায়ী ভিন্ন একটি ওয়ার্কশিট থেকে রেঞ্জ সিলেক্ট করা যায় এক্সেলে।
এটি করার ধাপগুলো নিচে দেখানো হলো।
ধাপসমূহ:
- আগের মতো Developer ট্যাব থেকে Visual Basic Editor খুলুন এবং কোড উইন্ডোতে Module ইনসার্ট করুন।
- কোড উইন্ডোতে নিচের কোডটি কপি করে পেস্ট করুন।
Sub FixedRange()
Dim iRng As Range
Dim iSheet As Worksheet
Set iSheet = Worksheets("Range") 'select the worksheet name"
With iSheet
.Cells(1, 7).Select 'selects cell G7 on worksheet
Set iRng = .Range(.Cells(3, 3), .Cells(7, 6))
End With
iRng.Select 'selects range of cells C3:F7 on worksheet
End Sub
এখানে,
- Cells(3,3) = ৩য় সারি, ৩য় কলাম (Cell C3)
- Cells(7,6) = ৭ম সারি, ৬ষ্ঠ কলাম (Cell F7)
আপনার কোড এখন রান করার জন্য প্রস্তুত।
- Run করুন কোড এবং আমাদের দেওয়া কলাম নম্বর অনুযায়ী " Range " নামে ওয়ার্কশিট থেকে C3 থেকে F7 পর্যন্ত সব সেল সিলেক্ট হবে (নিচের ছবি দেখুন)।
আরও পড়ুন: এক্সেলে কলাম নম্বরকে লেটারে রূপান্তর করার VBA (৩ পদ্ধতি)
৪. রেঞ্জের লাস্ট কলাম নম্বর রিটার্ন করার VBA
এই সেকশনে আমরা VBA কোড সম্পর্কে শিখব কীভাবে এক্টিভ রেঞ্জের লাস্ট কলাম নম্বর পাওয়া যায় এক্সেলে।
নিচের ডেটাসেটটি বিবেচনা করুন যাতে Cell A1 থেকে D10 পর্যন্ত ডেটা রয়েছে। আমরা Return বক্সে, Cell F5-এ রেঞ্জ থেকে লাস্ট কলাম নম্বর এক্সট্রাক্ট করব।
এটি করার ধাপগুলো নিচে দেওয়া হলো।
ধাপসমূহ:
- আগের মতো Developer ট্যাব থেকে Visual Basic Editor খুলুন এবং কোড উইন্ডোতে Module ইনসার্ট করুন।
- কোড উইন্ডোতে নিচের কোডটি কপি করে পেস্ট করুন।
Sub ReturnLastColumnInRange()
'declare variables
Dim iSheet As Worksheet
Dim iRng As Range
Set iWS = Worksheets("Return") 'select the worksheet
Set iRng = iWS.Range("A1:D10") 'set the range
'return the last column number in a cell
iWS.Range("F5") = iRng.Column + iRng.Columns.Count - 1
End Sub
আপনার কোড এখন রান করার জন্য প্রস্তুত।
- Run করুন ম্যাক্রো এবং আপনি লাস্ট কলাম নম্বর, 4, Cell F5-এ পাবেন।
আরও পড়ুন: এক্সেলে ম্যাচের কলাম নম্বর রিটার্ন করার ৫টি উপকারী উপায়
VBA Set Range-এর সুবিধা
- এটি বাস্তবায়ন করা খুব সহজ।
- Range অবজেক্টের আর্গুমেন্টগুলো ফিক্সড নয়। সুতরাং আমরা আর্গুমেন্টের ভ্যালু আমাদের প্রয়োজন অনুযায়ী মডিফাই করতে পারি।
- ১-র অধিক ভ্যালু আর্গুমেন্ট হিসেবে পাস করা যায়।
মনে রাখব্য বিষয়সমূহ
- CELLS প্রপার্টিজ VBA-তে Range সেট করতে ব্যবহার করা যায়।
- অবজেক্ট ভেরিয়েবলগুলো SET কীওয়ার্ড দিয়ে অবজেক্টের রেফারেন্স হিসেবে সেট করা উচিত।
উপসংহার
এই আর্টিকেলটি আপনাকে দেখিয়েছে কীভাবে Range ব্যবহার করে এক্সেলে কলাম নম্বর ভিত্তিক ভিন্ন কাজ করা যায় VBA-র মাধ্যমে। আশা করি এই আর্টিকেলটি আপনার জন্য খুব উপকারী হয়েছে। বিষয়টি সম্বন্ধে যেকোনো প্রশ্ন জিজ্ঞেস করতে দ্বিধা করবেন না।
সম্পর্কিত আর্টিকেল
- সেল ভ্যালুর ভিত্তিতে VBA-তে রেঞ্জ সিলেক্ট করার ৭ উপায়
- এক্সেল VBA: রেঞ্জ অন্য শিটে কপি করার ৮টি সহজ উপায়
- VBA-তে এক্সেল সাবস্ক্রিপ্ট আউট অফ রেঞ্জ এরর (৫ সমাধানসহ)
- [Fixed!] এক্সেল কলামগুলো নম্বর দিয়ে লেবেল করা হয়েছে না লেটার
- এক্সেলে কলাম লেটারকে নম্বর চার্টে রূপান্তর করার ৪ উপায়