VBA ম্যাক্রো প্রয়োগ করা এক্সেলে যেকোনো অপারেশন চালানোর সবচেয়ে কার্যকর, দ্রুত এবং নিরাপদ পদ্ধতি। এই আর্টিকেলে আমরা দেখব কিভাবে VBA ম্যাক্রো দিয়ে এক্সেলে ক্রাইটেরিয়া ভিত্তিক কলাম ডিলিট করা যায়।
ওয়ার্কবুক ডাউনলোড করুন
এখান থেকে ফ্রি প্র্যাকটিস এক্সেল ওয়ার্কবুক ডাউনলোড করতে পারেন।
জেনেরিক সিনট্যাক্স
VBA দিয়ে এক্সেলে কলাম ডিলিট করার জেনেরিক সিনট্যাক্স:
Columns(column number/ column address).Delete
ক্রাইটেরিয়া ভিত্তিক কলাম ডিলিট করার ৮টি VBA ম্যাক্রো উদাহরণ
এই সেকশনে আপনি শিখবেন কীভাবে VBA ম্যাক্রো দিয়ে সেল ভ্যালু, অন্য ওয়ার্কশিট, এবং টেবিল ভিত্তিক কলাম ডিলিট করা যায়।
উদাহরণ হিসেবে নিচের ডেটাসেট ব্যবহার করব।

ক্রাইটেরিয়া ১: সেল ভ্যালু ভিত্তিক কলাম ডিলিট
VBA দিয়ে সেল ভ্যালু ভিত্তিক কলাম ডিলিট করার ধাপসমূহ:
ধাপসমূহ:
- Alt + F11 চাপুন বা Developer → Visual Basic যান Visual Basic Editor খোলার জন্য।

- পপ-আপ কোড উইন্ডোতে মেনুবার থেকে Insert → Module ক্লিক করুন।

- নিচের কোড কপি করে কোড উইন্ডোতে পেস্ট করুন:
Sub DeleteColumnsBasedOnCellValue()
Dim iCol As Long
Dim iWrk As Long
iCol = 10
For iWrk = iCol To 1 Step -1
If Cells(1, iWrk) = 2 Then
Columns(iWrk).Delete
End If
Next
End Sub
আপনার কোড রান করার জন্য প্রস্তুত।

এই কোড সেল ভ্যালু ২ দিয়ে শুরু হওয়া কলামগুলো ডিলিট করবে।
- F5 চাপুন বা মেনুবার থেকে Run → Run Sub/UserForm ক্লিক করুন। ছোট Play আইকন-এও ক্লিক করতে পারেন।

ফলাফল নিচে দেখানো হলো।

সেল ভ্যালু ২ দিয়ে শুরু হওয়া কলামগুলো ডিলিট হয়েছে।
আরও পড়ুন: VBA দিয়ে এক্সেলে কলাম ডিলিট
ক্রাইটেরিয়া ২: ব্ল্যাঙ্ক সেল ভিত্তিক কলাম ডিলিট
VBA দিয়ে ব্ল্যাঙ্ক সেল থাকা কলাম ডিলিট করার ধাপসমূহ:
ধাপসমূহ:
- আগের মতো Visual Basic Editor খুলুন Developer ট্যাব থেকে এবং কোড উইন্ডোতে Module Insert করুন।
- কোড উইন্ডোতে নিচের কোড পেস্ট করুন:
Sub DeleteBlankCells()
Range("A1:J10").Select '//ডেটাসেটের রেঞ্জ
Selection.SpecialCells(xlCellTypeBlanks).Select
Selection.EntireColumn.Delete
End Sub
কোড রান করার জন্য প্রস্তুত।

- Run করুন ম্যাক্রোটি।

ব্ল্যাঙ্ক সেল ধারণকারী সকল কলাম এখন ডিলিট হয়েছে।
ক্রাইটেরিয়া ৩: সম্পূর্ণ ব্ল্যাঙ্ক কলাম ডিলিট
নিচের ডেটাসেটে ব্ল্যাঙ্ক কলাম রয়েছে। এগুলো VBA ম্যাক্রো দিয়ে কীভাবে ডিলিট করবেন তা দেখানো হলো।

ধাপসমূহ:
- আগের মতো Visual Basic Editor খুলুন এবং Module Insert করুন।
- কোড উইন্ডোতে নিচের কোড পেস্ট করুন:
Sub DeleteBlankCol()
Dim i As Integer
For i = 1 To 4
Columns(i + 1).Delete
Next i
End Sub
কোড রান করার জন্য প্রস্তুত।

- Run করুন ম্যাক্রোটি।

সকল ব্ল্যাঙ্ক কলাম ডিলিট হয়েছে।
আরও পড়ুন: এক্সেলে ব্ল্যাঙ্ক কলাম ডিলিট
ক্রাইটেরিয়া ৪: নন-এডজাসেন্ট (আসন্ন নয়) একাধিক কলাম ডিলিট
VBA দিয়ে একাধিক নন-এডজাসেন্ট কলাম ডিলিট করার ধাপসমূহ:
ধাপসমূহ:
- আগের মতো Visual Basic Editor খুলুন এবং Module Insert করুন।
- কোড উইন্ডোতে নিচের কোড পেস্ট করুন:
Sub DeleteNAdjCol()
Range("C:E, G:I").Delete
End Sub
কোড রান করার জন্য প্রস্তুত।

- Run করুন ম্যাক্রোটি।

পূর্বের C থেকে E (Feb to Apr) এবং G থেকে I (Jun to Aug) কলামগুলো ডিলিট হয়েছে।
সমক্ষ পড়াশোনা:
- এক্সেলে আনইউজড কলাম ডিলিট করার ৫ সহজ পদ্ধতি
- ফর্মুলা প্রভাবিত না করে কলাম ডিলিট করার ২ উপায়
- ডুপ্লিকেট কলাম ডিলিট করার ৬ উপায়
ক্রাইটেরিয়া ৫: নির্দিষ্ট ওয়ার্কশিট ভিত্তিক কলাম ডিলিট
VBA দিয়ে নির্দিষ্ট ওয়ার্কশিট থেকে কলাম ডিলিট করার ধাপসমূহ:
ধাপসমূহ:
- আগের মতো Visual Basic Editor খুলুন এবং Module Insert করুন।
- কোড উইন্ডোতে নিচের কোড পেস্ট করুন:
Sub DeleteColFromSheet()
Worksheets("New Column").Select '// শিটের নাম সেট করুন
Columns("D:F").Delete
End Sub
কোড রান করার জন্য প্রস্তুত।

- Run করুন ম্যাক্রোটি।

D থেকে F (Mar to May) কলামগুলো "New Column" ওয়ার্কশিট থেকে ডিলিট হয়েছে।
ক্রাইটেরিয়া ৬: টেবিল ভিত্তিক কলাম ডিলিট
VBA দিয়ে টেবিল থেকে কলাম ডিলিট করার ধাপসমূহ:
ধাপসমূহ:
- আগের মতো Visual Basic Editor খুলুন এবং Module Insert করুন।
- কোড উইন্ডোতে নিচের কোড পেস্ট করুন:
Sub DeleteColTable()
Dim srcTable As ListObject
Dim srcSheet As Worksheet
'কলাম ডিলিট করা টেবিল সেট করুন
Set srcTable = ActiveSheet.ListObjects("ExTable")
'টেবিল ধারণকারী শিট সেট করুন
Set srcSheet = Sheet8
With srcSheet
srcTable.ListColumns(5).Delete
End With
End Sub
কোড রান করার জন্য প্রস্তুত।

- Run করুন ম্যাক্রোটি।

কলাম ৫ (Apr) টেবিল থেকে ডিলিট হয়েছে।
ক্রাইটেরিয়া ৭: টেবিল থেকে একাধিক কলাম ডিলিট
VBA দিয়ে টেবিল থেকে একাধিক কলাম ডিলিট করার ধাপসমূহ:
ধাপসমূহ:
- আগের মতো Visual Basic Editor খুলুন এবং Module Insert করুন।
- কোড উইন্ডোতে নিচের কোড পেস্ট করুন:
Sub DeleteMColTable()
Dim srcTable As ListObject
Dim srcSheet As Worksheet
Dim i As Integer
'কলাম ডিলিট করা টেবিল সেট করুন
Set srcTable = ActiveSheet.ListObjects("ExTable2")
'টেবিল ধারণকারী শিট সেট করুন
Set srcSheet = Sheet9
'লুপ ২ বার রান করবে কারণ ২ কলাম ডিলিট করতে হবে
For i = 1 To 2
With Source
srcTable.ListColumns(5).Delete
End With
Next i
End Sub
কোড রান করার জন্য প্রস্তুত।

- Run করুন ম্যাক্রোটি।

কলাম ৫ এবং ৬ (Apr and May) টেবিল থেকে ডিলিট হয়েছে।
আরও পড়ুন: এক্সেলে একাধিক কলাম ডিলিট করার পদ্ধতি
ক্রাইটেরিয়া ৮: কলাম হেডার ভিত্তিক টেবিল থেকে কলাম ডিলিট
VBA দিয়ে কলাম হেডার ভিত্তিক টেবিল থেকে কলাম ডিলিট করার ধাপসমূহ:
ধাপসমূহ:
- আগের মতো Visual Basic Editor খুলুন এবং Module Insert করুন।
- কোড উইন্ডোতে নিচের কোড পেস্ট করুন:
Sub DeleteColHeaderTable()
Dim srcTable As ListObject
Dim srcSheet As Worksheet
Dim i As Integer
Dim colName As String
'কলাম ডিলিট করা টেবিল সেট করুন
Set srcTable = ActiveSheet.ListObjects("ExTable3")
'টেবিল ধারণকারী শিট সেট করুন
Set srcSheet = Sheet10
'Case sensitive
colName = "Apr"
'টেবিলের সব কলামে লুপ চালান
For i = 1 To srcTable.ListColumns.Count
With srcSheet
'কলাম হেডার চেক করুন
If srcTable.ListColumns(i).Name = colName Then
srcTable.ListColumns(i).Delete
Exit For
End If
End With
Next i
End Sub
কোড রান করার জন্য প্রস্তুত।

- Run করুন ম্যাক্রোটি।

কলাম হেডার নামে Apr টেবিল থেকে ডিলিট হয়েছে।
উপসংহার
এই আর্টিকেলে আমরা দেখিয়েছি কীভাবে VBA ম্যাক্রো দিয়ে ৮টি ভিন্ন ক্রাইটেরিয়া ভিত্তিক এক্সেলে কলাম ডিলিট করা যায়। আশা করি এটি আপনার জন্য খুব উপকারী হবে। বিষয় সংক্রান্ত যেকোনো প্রশ্ন জিজ্ঞাসা করুন।
আপনি এগুলোও পড়তে পারেন
- ফর্মুলা ডিলিট না করে এক্সেলে কন্টেন্ট ক্লিয়ার করার ৩ উপায়
- এক্সেলে এক্সট্রা কলাম ডিলিট করার ৭ পদ্ধতি