ডেটা ভ্যালিডেশন ড্রপ-ডাউন লিস্ট এক্সেল সম্পর্কিত বিভিন্ন কাজ সম্পাদনের জন্য খুব উপকারী একটি ফিচার। VBA বাস্তবায়ন এক্সেলে যেকোনো অপারেশন চালানোর সবচেয়ে কার্যকর, দ্রুত এবং নিরাপদ পদ্ধতি। এই আর্টিকেলে আমরা আপনাকে VBA ম্যাক্রো সহ এক্সেলে ডেটা ভ্যালিডেশন ড্রপ-ডাউন লিস্ট-এর ৭টি ভিন্ন অ্যাপ্লিকেশন দেখাব।
ওয়ার্কবুক ডাউনলোড করুন
আপনি এখান থেকে বিনামূল্যে প্র্যাকটিস এক্সেল ওয়ার্কবুক ডাউনলোড করতে পারেন।
VBA সহ এক্সেলে ডেটা ভ্যালিডেশন ড্রপ-ডাউন লিস্টের ৭টি পদ্ধতি
এই সেকশনে, আপনি VBA ম্যাক্রো সহ এক্সেলে ডেটা ভ্যালিডেশন ড্রপ-ডাউন লিস্ট-এর ৭টি ভিন্ন অ্যাপ্লিকেশন শিখবেন।
১. VBA এম্বেড করে এক্সেলে ডেটা ভ্যালিডেশন ড্রপ-ডাউন লিস্ট তৈরি করা
VBA দিয়ে ডেটা ভ্যালিডেশন ড্রপ-ডাউন লিস্ট তৈরি করা জানতে নিচের ধাপগুলো অনুসরণ করুন।
ধাপসমূহ:
- শুরুতে, আপনার কীবোর্ডে Alt + F11 চাপুন অথবা Developer -> Visual Basic ট্যাবে যান Visual Basic Editor খুলতে।

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

- उसके পর, নিচের কোডটি কপি করে কোড উইন্ডোতে পেস্ট করুন।
Sub CreateDropDownList() Range("B5").Validation.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Formula1:="Grapes, Orange, Guava, Mango, Apple" End Sub
আপনার কোড এখন রান করার জন্য প্রস্তুত।

এই কোডটি সেল B5-এ একটি ড্রপ-ডাউন লিস্ট তৈরি করবে। এবং ড্রপ-ডাউন লিস্টটি "আঙ্গুর, কমলা, পেয়ারা, আম, আপেল" মানগুলো ধারণ করবে।
- এখন আপনার কীবোর্ডে F5 চাপুন অথবা মেনু বার থেকে Run -> Run Sub/UserForm সিলেক্ট করুন। আপনি সাব-মেনু বারের ছোট Run আইকন-এ ক্লিক করেও ম্যাক্রো রান করতে পারেন।

কোড এক্সিকিউশনের পর, নিচের ছবিটি দেখুন ফলাফল জানতে।

উপরের ছবি থেকে দেখা যাচ্ছে যে সেল B5-এ একটি ড্রপ-ডাউন লিস্ট তৈরি হয়েছে "আঙ্গুর, কমলা, পেয়ারা, আম, আপেল" মানগুলোর সাথে।
আরও পড়ুন: ডেটা ভ্যালিডেশনের জন্য এক্সেল ড্রপ-ডাউন লিস্ট তৈরি করা (৮ উপায়)
২. নামড রেঞ্জ দিয়ে VBA-এ ড্রপ-ডাউন লিস্ট জেনারেট করা এক্সেলে
যখন আপনি ড্রপ-ডাউন লিস্টের প্রতিটি মান কোডের ভিতরে লিখতে চান না, তবে আপনি সকল নাম একটি ডিফাইনড নেম-এ রাখতে পারেন এবং পরে সেটি ব্যবহার করে ভ্যালু রেঞ্জটি কল করতে পারেন। এটি এক্সেলে ড্রপ-ডাউন লিস্ট তৈরির জন্য খুব সুবিধাজনক একটি পদ্ধতি।
এই সেকশনে, আপনি শিখবেন কীভাবে নামড রেঞ্জ ব্যবহার করে VBA কোড দিয়ে একটি দেওয়া লিস্ট থেকে ড্রপ-ডাউন লিস্ট জেনারেট করা যায়।
ধাপসমূহ:
- প্রথমে, সেলেক্ট করুন সেই রেঞ্জটি যেখানে ড্রপ-ডাউন লিস্টের ভ্যালুগুলো আছে (আমাদের কেসে, রেঞ্জটি হলো B5:B9)।
- দ্বিতীয়, সিলেক্ট করা রেঞ্জে রাইট-ক্লিক করুন।
- অপশনগুলোর একটি লিস্ট আসবে। সেখান থেকে Define Name… সিলেক্ট করুন।

- उसके পর, একটি New Name পপ-আপ বক্স আসবে। Name বক্সে আপনার পছন্দের যেকোনো নাম লিখুন (আমরা আমাদের সেলকে Fruits নামে নামকরণ করলাম)।
- পরবর্তী, OK ক্লিক করুন।

- আমরা সফলভাবে রেঞ্জ B5:B9 কে Fruits নামে নামকরণ করলাম (নিচের ছবিতে দেখানো হয়েছে)।

এখন আমরা এই ডিফাইনড নেমটি আমাদের VBA কোডে ব্যবহার করব। সেটি করার ধাপগুলো নিচে দেখানো হলো।
- এarlier মতো, Developer ট্যাব থেকে Visual Basic Editor খুলুন এবং কোড উইন্ডোতে একটি Module Insert করুন।
- তারপর, কোড উইন্ডোতে, নিচের কোডটি কপি করে পেস্ট করুন।
Sub GenerateDropDownList() Range("B12").Validation.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Formula1:="=Fruits" End Sub
আপনার কোড এখন রান করার জন্য প্রস্তুত।

এই কোডটি সেল B12-এ একটি ড্রপ-ডাউন লিস্ট তৈরি করবে "আঙ্গুর, কমলা, পেয়ারা, আম, আপেল" মানগুলোর সাথে যা Fruits নামে ডিফাইন করা হয়েছে।
- পরবর্তী, ম্যাক্রো Run করুন। ফলাফল নিচের ছবিতে দেখানো হলো।

ফলস্বরূপ, উপরের ছবি থেকে দেখা যাচ্ছে যে সেল B12-এ ড্রপ-ডাউন লিস্ট তৈরি হয়েছে "আঙ্গুর, কমলা, পেয়ারা, আম, আপেল" মানগুলোর সাথে।
আরও পড়ুন: এক্সেলে মাল্টি সিলেকশন সহ ডেটা ভ্যালিডেশন ড্রপ-ডাউন লিস্ট তৈরি করা
৩. প্রদত্ত লিস্ট থেকে ম্যাক্রো দিয়ে ডেটা ভ্যালিডেশন ড্রপ-ডাউন বক্স তৈরি করা
যদি আপনি নামড রেঞ্জ অপশন খুব পছন্দ না করেন, তবে এই সেকশনটি আপনার জন্য। এখানে, আপনি শিখবেন কীভাবে একটি ডেটাসেটে বিদ্যমান একটি রেঞ্জ থেকে ড্রপ-ডাউন লিস্ট তৈরি করা যায়।
ধাপসমূহ:
- আগের মতো, Developer ট্যাব থেকে Visual Basic Editor খুলুন এবং কোড উইন্ডোতে একটি Module Insert করুন।
- তারপর, নিচের কোডটি কপি করে কোড উইন্ডোতে পেস্ট করুন।
Sub ProduceDropDownList() With Range("B12").Validation .Add xlValidateList, xlValidAlertStop, xlBetween, "=$B$5:$B$10" .InCellDropdown = True End With End Sub
আপনার কোড এখন রান করার জন্য প্রস্তুত।

এই কোডটি সেল B12-এ একটি ড্রপ-ডাউন লিস্ট তৈরি করবে B5:B9 রেঞ্জে থাকা ভ্যালুগুলো দিয়ে।
- এখন, ম্যাক্রো Run করুন এবং আউটপুট দেখতে নিচের ছবিটি দেখুন।

ফলস্বরূপ, উপরের ছবি থেকে দেখা যাচ্ছে যে সেল B12-এ ড্রপ-ডাউন লিস্ট তৈরি হয়েছে "আঙ্গুর, কমলা, পেয়ারা, আম, আপেল" মানগুলোর সাথে যা আমরা সেল B5 থেকে B9-এ সংরক্ষণ করেছিলাম।
সম্পর্কিত কন্টেন্ট: এক্সেল VBA সহ ডেটা ভ্যালিডেশন লিস্টে ডিফল্ট ভ্যালু (ম্যাক্রো এবং UserForm)
সদৃশ পাঠনীয়:
- ফিল্টারসহ এক্সেল ডেটা ভ্যালিডেশন ড্রপ-ডাউন লিস্ট (২ পদ্ধতি)
- ডেটা ভ্যালিডেশন অ্যালফানিউমেরিক ওনলি (কাস্টম ফর্মুলা ব্যবহার করে)
- অন্য সেল ভ্যালু বেসড এক্সেল ডেটা ভ্যালিডেশন
- এক্সেল ডেটা ভ্যালিডেশনে কাস্টম VLOOKUP ফর্মুলা ব্যবহার করা
৪. এক্সেলে একাধিক ড্রপ-ডাউন লিস্ট তৈরি করার জন্য VBA বাস্তবায়ন
আপনি VBA ম্যাক্রো দিয়ে একাধিক ড্রপ-ডাউন লিস্ট তৈরি করতে পারেন। এক্সেলে কীভাবে করা যায় সেটি দেখি।
ধাপসমূহ:
- প্রথমে, Developer ট্যাব থেকে Visual Basic Editor খুলুন এবং কোড উইন্ডোতে একটি Module Insert করুন।
- দ্বিতীয়, কোড উইন্ডোতে, নিচের কোডটি কপি করে পেস্ট করুন।
Sub MultipleDropDownList(iTarget As Range, iSource As Range) 'to delete and add validation in the target range With iTarget.Validation .Delete .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _ xlBetween, Formula1:="=" & iSource.Address .IgnoreBlank = True .InCellDropdown = True .InputTitle = "" .ErrorTitle = "" .InputMessage = "" .ErrorMessage = "" .ShowInput = True .ShowError = True End With End Sub Sub DropDownRange() MultipleDropDownList Sheet7.Range("B5:B10"), Sheet7.Range("A1:A3") End Sub
আপনার কোড এখন রান করার জন্য প্রস্তুত।

এই কোডটি B5 থেকে B9 রেঞ্জের প্রতিটি সেলে একটি ড্রপ-ডাউন লিস্ট জেনারেট করবে।
- তৃতীয়, ম্যাক্রো Run করুন। ফলাফল দেখতে নিচের GIF-টি দেখুন।

B5 থেকে B9 রেঞ্জের প্রতিটি সেল এখন একটি ড্রপ-ডাউন লিস্ট ধারণ করছে।
আরও পড়ুন: এক্সেলে একাধিক ক্রাইটেরিয়া জন্য কাস্টম ডেটা ভ্যালিডেশন প্রয়োগ (৪ উদাহরণ)
৫. ইউজার-ডিফাইনড ফাংশন সহ ড্রপ-ডাউন লিস্ট তৈরি করার জন্য VBA প্রয়োগ
আপনি এক্সেলে ইউজার-ডিফাইনড ফাংশন (UDF) দিয়ে একটি ড্রপ-ডাউন লিস্ট তৈরি করতে পারেন।
এটি পেতে ধাপগুলো নিচে দেখানো হলো।
ধাপসমূহ:
- শুরুতে, যে শীটে আপনি UDF বাস্তবায়ন করতে চান ড্রপ-ডাউন লিস্ট তৈরি করার জন্য, সেটিতে রাইট-ক্লিক করুন।
- তারপর, প্রদর্শিত লিস্ট থেকে View Code সিলেক্ট করুন। নিচে দেখানো হয়েছে, আমরা UDF নামে শীটে রাইট-ক্লিক করেছি যেখানে আমাদের ডেটাসেট সংরক্ষিত এবং অপশনগুলো থেকে View Code সিলেক্ট করেছি।

- তারপর, নিচের কোডটি কপি করে অটো-জেনারেটেড কোড উইন্ডোতে পেস্ট করুন।
Public Function DropDownUDF(iSource As Range) As Variant 'to delete and add validation in the specified range With Selection.Validation .Delete .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _ xlBetween, Formula1:="=" & iSource.Address .IgnoreBlank = True .InCellDropdown = True .InputTitle = "" .ErrorTitle = "" .InputMessage = "" .ErrorMessage = "" .ShowInput = True .ShowError = True End With 'this will return the first value 'this reset the values when formula in sheet are refreshed DropDownUDF = VBA.Val(iSource(1)) End Function
- এই কোডটি Run করবেন না। Save করুন।

- তারপর, আপনার আগ্রহের ওয়ার্কশীটে ফিরে যান।
- उसके পর, যেকোনো সেল পিক করুন যেখানে আপনি ড্রপ-ডাউন লিস্ট তৈরি করতে চান (আমাদের কেসে, এটি সেল B11)।
- সেই সেলে, নতুন তৈরি ফাংশনটি – DropDownUDF – লিখুন যেভাবে আপনি অন্য যেকোনো ফাংশন লিখেন। অর্থাৎ, প্রথমে একটি ইকোয়াল সাইন (=) দিন, তারপর ফাংশন নাম লিখুন, DropDownUDF এবং সেল রেফারেন্সগুলো (B5:B9) প্যারেনথেসিসের ভিতরে পাস করুন।
সেল B11-এ ফর্মুলাটি হবে এইভাবে:
=DropDownUDF(B5:B9)
- তারপর Enter চাপুন।

ফলস্বরূপ, আপনি UDF-এ 의해 তৈরি একটি ড্রপ-ডাউন লিস্ট পাবেন সেল B11-এ "আঙ্গুর, কমলা, পেয়ারা, আম, আপেল" মানগুলোর সাথে যা রেঞ্জ B5:B9-এ সংরক্ষিত এবং যা আমরা ফাংশনের ভিতরে পাস করেছিলাম।
আরও পড়ুন: এক্সেল ডেটা ভ্যালিডেশন ফর্মুলায় IF স্টেটমেন্ট ব্যবহার করা (৬ উপায়)
৬. VBA দিয়ে অন্য শীট থেকে ডেটা এক্সট্রাক্ট করে ড্রপ-ডাউন লিস্টে
নিচের ছবিটি দেখুন। আমাদের List নামে একটি শীটে একটি ডেটাসেট আছে।

আমরা এখানে যা করব, সেটি হলো Target নামে শীটের সেল B5-এ একটি ড্রপ-ডাউন লিস্ট তৈরি করা (নিচের ছবিতে দেখানো হয়েছে)। এবং সেই ড্রপ-ডাউন লিস্টের ভ্যালুগুলো হবে List শীটের B5:B9 রেঞ্জের ভ্যালুগুলো।

চলুন দেখি VBA দিয়ে কীভাবে করা যায়।
ধাপসমূহ:
- প্রথমে, Developer ট্যাব থেকে Visual Basic Editor খুলুন এবং কোড উইন্ডোতে একটি Module Insert করুন।
- তারপর, নিচের কোডটি কপি করে কোড উইন্ডোতে পেস্ট করুন।
Private Sub DropDownFromSheet() 'to store the dropdown list in cell B5 'you can replace "B5" with any other cell With Range("B5").Validation .Delete 'to extract data from "List" sheet and "B5:B9" range 'you can replace "=List!B5:B9" with your sheet name and range .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, _ Operator:=xlBetween, Formula1:="=List!B5:B9" .IgnoreBlank = True .InCellDropdown = True .InputTitle = "" .ErrorTitle = "" .InputMessage = "" .ErrorMessage = "" .ShowInput = True .ShowError = True End With End Sub
আপনার কোড এখন রান করার জন্য প্রস্তুত।

- পরবর্তী, ম্যাক্রো Run করুন এবং আউটপুট দেখতে নিচের ছবিটি দেখুন।

সফল কোড এক্সিকিউশনের ফলে, Target ওয়ার্কশীটের সেল B5-এ একটি ড্রপ-ডাউন লিস্ট তৈরি হয়েছে "আঙ্গুর, কমলা, পেয়ারা, আম, আপেল" মানগুলোর সাথে যা List স্প্রেডশীটের B5:B9 রেঞ্জে সংরক্ষিত।
আরও পড়ুন: অন্য শীট থেকে ডেটা ভ্যালিডেশন লিস্ট ব্যবহার করা (৬ পদ্ধতি)
৭. VBA ম্যাক্রো দিয়ে এক্সেল থেকে ডেটা ভ্যালিডেশন ড্রপ-ডাউন লিস্ট ডিলিট করা
এই সেকশনটি আপনাকে দেখাবে কীভাবে এক্সেল থেকে একটি ড্রপ-ডাউন লিস্ট ডিলিট করা যায়। আমরা আপনাকে দেখাব কীভাবে মূল ড্রপ-ডাউন লিস্ট সেল B5-এ (নিচের ছবিতে দেখানো হয়েছে) VBA ম্যাক্রো দিয়ে ডিলিট করা যায়।

এটি এক্সিকিউট করার ধাপগুলো নিচে দেওয়া হলো।
ধাপসমূহ:
- প্রথমে, Developer ট্যাব থেকে Visual Basic Editor খুলুন এবং কোড উইন্ডোতে একটি Module Insert করুন।
- তারপর, কোড উইন্ডোতে, নিচের কোডটি কপি করে পেস্ট করুন।
Sub DeleteDropDownList() Range("B5").Validation.Delete End Sub
আপনার কোড এখন রান করার জন্য প্রস্তুত।
- পরবর্তী, ম্যাক্রো Run করুন এবং নিচের ছবিটি দেখুন।

উপরের ছবি থেকে দেখা যাচ্ছে যে সেল B5-এ আর কোনো ড্রপ-ডাউন লিস্ট নেই। চূড়ান্তে, আমরা শিখেছি কীভাবে VBA দিয়ে একটি স্প্রেডশীট থেকে মূল ড্রপ-ডাউন লিস্ট ডিলিট করা যায়।
আরও পড়ুন: এক্সেলে ডেটা ভ্যালিডেশন লিস্ট থেকে ব্ল্যাঙ্ক সরানো (৫ পদ্ধতি)
উপসংহার
উপসংহারে, এই আর্টিকেল আপনাকে VBA ম্যাক্রো সহ এক্সেলে ডেটা ভ্যালিডেশন ড্রপ-ডাউন লিস্ট-এর ৭টি ভিন্ন অ্যাপ্লিকেশন দেখিয়েছে। আশা করি এই আর্টিকেল আপনার জন্য খুব উপকারী হয়েছে। বিষয়টি সম্পর্কে যেকোনো প্রশ্ন জিজ্ঞাসা করতে বাধা महসুস করবেন না।
সম্পর্কিত আর্টিকেলগুলো
- [সারানো] কপি-পেস্টের জন্য ডেটা ভ্যালিডেশন কাজ না করলে এক্সেলে (সমাধানসহ)
- VBA সহ এক্সেলে ডেটা ভ্যালিডেশন লিস্টে নেমড রেঞ্জ ব্যবহার করা
- এক্সেল VBA দিয়ে অ্যারে থেকে ডেটা ভ্যালিডেশন লিস্ট তৈরি করা
- রঙের সাথে এক্সেলে ডেটা ভ্যালিডেশন ব্যবহার করা (৪ উপায়)
- এক্সেলে একক সেলে একাধিক ডেটা ভ্যালিডেশন প্রয়োগ (৩ উদাহরণ)