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

এখানে, আমাদের কিছু সেলসপারসনের ডেটাসেট আছে। তাদের ওয়ার্কিং রিজন এবং সেলিং প্রোডাক্ট আছে। এখানে, আমরা Region এবং Product কলামের জন্য একটি ডেটা ভ্যালিডেশন লিস্ট তৈরি করব।
আমাদের ডেটা ভ্যালিডেশন লিস্টে থাকবে:
- Region: “North”, “South”, “East”, “West”
- Product: “TV”, “Fridge”, “Mobile”, “Laptop”, “AC”
আপনি ট্রেডিশনাল উপায়ে একটি ভ্যালিডেশন লিস্ট তৈরি করতে পারেন। কিন্তু, এখানে আমরা VBA কোড ব্যবহার করব। এখন, VBA কোডে, আমরা সেগুলো একটি অ্যারেতে রাখব। এবং সেই অ্যারে থেকে আমরা আমাদের ডেটা ভ্যালিডেট করব।
নিচের বিভাগে, আমি কোডটি ধাপে ধাপে তৈরি করব। আমি সুপারিশ করি আপনি আমার সাথে সাথে আপনার কোড তৈরি করুন। এইভাবে, আপনি কোডটি ভালোভাবে শিখবেন। চলুন শুরু করা যাক।
এক্সেল ডেটা ভ্যালিডেশন লিস্ট অ্যারে থেকে তৈরির জন্য VBA কোড তৈরি করুন
এই বিভাগে, আপনি এক্সেলে VBA কোড ব্যবহার করে একটি অ্যারে থেকে আপনার ডেটা ভ্যালিডেশন লিস্ট তৈরি করা শিখবেন। এখানে, আমাদের Region এবং Product কলামে একটি ড্রপ-ডাউন লিস্ট থাকবে।
📌 স্টেপ ১: VBA এডিটর খুলুন
- প্রথমে, আপনার কীবোর্ডে Alt+F11 চাপুন VBA এডিটর খোলার জন্য।
- তারপর, Insert>Module নির্বাচন করুন।

📌 স্টেপ ২: সাব-প্রসিডিউর ডিক্লেয়ার করুন
এখন, নিচের কোডটি টাইপ করুন:
Sub data_validation_from_array() End Sub
এটি আমাদের সাব-প্রসিডিউর। আমরা সকল কোড এখানেই টাইপ করব।
📌 স্টেপ ৩: প্রয়োজনীয় ভেরিয়েবল ডিক্লেয়ার করুন
এখন আমাদের জন্য প্রয়োজনীয় ভেরিয়েবলগুলো ডিক্লেয়ার করার পালা যা আমাদের আরও ব্যবহার করতে হবে।
Sub data_validation_from_array() Dim region, product As Variant Dim region_range, product_range As Range End Sub
আমরা আমাদের অ্যারেগুলোকে Variant হিসেবে ডিক্লেয়ার করছি। এই ভেরিয়েবলে কিছু স্ট্রিং থাকবে।
region_range, product_range: এই ভেরিয়েবলগুলো আমাদের Region এবং Product কলামের রেঞ্জ স্টোর করবে।
📌 স্টেপ ৪: অ্যারেগুলো সেট করুন
Sub data_validation_from_array() Dim region, product As Variant Dim region_range, product_range As Range region = Array("North", "South", "East", "West") product = Array("TV", "Fridge", "Mobile", "Laptop", "AC") End Sub
যেমন আপনি দেখতে পাচ্ছেন, আমরা region এবং product ভেরিয়েবলে কিছু স্ট্রিং স্টোর করেছি। আমরা সেগুলো ব্যবহার করে আমাদের ড্রপ-ডাউন লিস্ট তৈরি করব।
আরও পড়ুন: VBA-তে স্ট্রিংকে অ্যারেতে বিভক্ত করা (৩ উপায়)
📌 স্টেপ ৫: ডেটা ভ্যালিডেশন রেঞ্জ সেট করুন
Sub data_validation_from_array() Dim region, product As Variant Dim region_range, product_range As Range region = Array("North", "South", "East", "West") product = Array("TV", "Fridge", "Mobile", "Laptop", "AC") Set region_range = Range("C5:C10") Set product_range = Range("D5:D10") End Sub
Set region_range = Range(“C5:C10”): কোডের এই লাইনটি Region কলামকে নির্দেশ করছে।

Set product_range = Range(“D5:D10”): এবং এই লাইনটি Product কলামকে নির্দিষ্ট করছে।

আরও পড়ুন: এক্সেল VBA-তে রেঞ্জকে অ্যারেতে রূপান্তর করা (৩ উপায়)
📌 স্টেপ ৬: Region কলামে ডেটা ভ্যালিডেশন লিস্ট তৈরি করুন
Sub data_validation_from_array() Dim region, product As Variant Dim region_range, product_range As Range region = Array("North", "South", "East", "West") product = Array("TV", "Fridge", "Mobile", "Laptop", "AC") Set region_range = Range("C5:C10") Set product_range = Range("D5:D10") With region_range.Validation .Delete .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Formula1:=Join(region, ",") .IgnoreBlank = True .InCellDropdown = True .InputTitle = "" .ErrorTitle = "Error" .InputMessage = "" .ErrorMessage = "Please Provide a Valid Input" .ShowInput = True .ShowError = True End With End Sub
With region_range.Validation: এই লাইন দিয়ে আমরা Region কলামটি সিলেক্ট করছি।
.Delete: যদি কোনো পূর্ব-বidone ভ্যালিডেশন লিস্ট থাকে, তবে সেগুলো ডিলিট করবে।
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Formula1:=Join(region, “,”): আমরা এখানে একটি ডেটা ভ্যালিডেশন লিস্ট যোগ করছি।
- AlertStyle নির্ধারণ করে ব্যবহারকারী লিস্টের বাইরে এন্ট্রি দিলে কী ধরনের সতর্কবার্তা দেখানো হবে।
- Formula1:=Join(region, “,”): Formula-এর মাধ্যমে, আমরা ভ্যালিডেশন লিস্টে ভ্যালু প্রদান করছি। আমাদের region ভেরিয়েবলে কিছু স্ট্রিং ছিল। Join মেথড ব্যবহার করে, আমরা সেগুলো কমা (,) দিয়ে কম্বাইন করছি। এই ভ্যালু বা আইটেমগুলো আমাদের ভ্যালিডেশন লিস্টে সোর্স হবে।
.IgnoreBlank = True: এই লাইনের মাধ্যমে, আমরা ব্ল্যাঙ্ক ভ্যালু অনুমতি দিচ্ছি।
.InCellDropdown = True: আমরা গ্রহণযোগ্য ভ্যালুসহ একটি ড্রপ-ডাউন লিস্ট প্রদর্শন করব।
.ErrorTitle = “Error”: আমরা ডেটা-ভ্যালিডেশন এরর ডায়লগ বক্সের টাইটেল সেট করছি।
.ErrorMessage = “Please Provide a Valid Input”: এটি ডেটা ভ্যালিডেশন এরর ডায়লগ বক্সে একটি এরর মেসেজ সেট করবে।
.ShowInput = True: ব্যবহারকারী ডেটা ভ্যালিডেশন রেঞ্জের যেকোনো সেলে ক্লিক করলে এটি ডেটা ভ্যালিডেশন ইনপুট মেসেজ প্রদর্শন করবে।
.ShowError = True: ব্যবহারকারী কোনো অবৈধ ইনপুট দিলে এটি এরর ডায়লগ বক্স দেখাবে।
আরও পড়ুন: VBA-তে কলাম থেকে ইউনিক ভ্যালু অ্যারেতে পাওয়া (৩ কেরিয়া)
সাদৃশ্য পাঠ্য
- VBA-তে অ্যারে ট্রান্সপোজ করা এক্সেলে (৩ পদ্ধতি)
- এক্সেলে টেবিল অ্যারে নামকরণ করা (সহজ ধাপসহ)
- এক্সেল VBA-তে CSV ফাইলকে অ্যারেতে পড়া (৪ আইডিয়াল উদাহরণ)
- এক্সেল VBA: অ্যারেতে একাধিক কেরিয়া দিয়ে ফিল্টার করা (৭ উপায়)
📌 স্টেপ ৭: Product কলামে ডেটা ভ্যালিডেশন লিস্ট তৈরি করুন
Sub data_validation_from_array() Dim region, product As Variant Dim region_range, product_range As Range region = Array("North", "South", "East", "West") product = Array("TV", "Fridge", "Mobile", "Laptop", "AC") Set region_range = Range("C5:C10") Set product_range = Range("D5:D10") With region_range.Validation .Delete .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Formula1:=Join(region, ",") .IgnoreBlank = True .InCellDropdown = True .InputTitle = "" .ErrorTitle = "Error" .InputMessage = "" .ErrorMessage = "Please Provide a Valid Input" .ShowInput = True .ShowError = True End With With product_range.Validation .Delete .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Formula1:=Join(product, ",") .IgnoreBlank = True .InCellDropdown = True .InputTitle = "" .ErrorTitle = "Error" .InputMessage = "" .ErrorMessage = "Please Provide a Valid Input" .ShowInput = True .ShowError = True End With End Sub
With product_range.Validation: এই লাইন দিয়ে আমরা Product কলামটি সিলেক্ট করছি।
.Delete: যদি কোনো পূর্ব-বidone ভ্যালিডেশন লিস্ট থাকে, তবে সেগুলো ডিলিট করবে।
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Formula1:=Join(product, “,”): আমরা এখানে একটি ডেটা ভ্যালিডেশন লিস্ট যোগ করছি।
- AlertStyle নির্ধারণ করে ব্যবহারকারী লিস্টের বাইরে এন্ট্রি দিলে কী ধরনের সতর্কবার্তা দেখানো হবে।
- Formula1:=Join(region, “,”): Formula-এর মাধ্যমে, আমরা ভ্যালিডেশন লিস্টে ভ্যালু প্রদান করছি। আমাদের product ভেরিয়েবলে কিছু স্ট্রিং ছিল। Join মেথড ব্যবহার করে, আমরা সেগুলো কমা (,) দিয়ে কম্বাইন করছি। এই ভ্যালু বা আইটেমগুলো আমাদের ভ্যালিডেশন লিস্টে সোর্স হবে।
.IgnoreBlank = True: এই লাইনের মাধ্যমে, আমরা ব্ল্যাঙ্ক ভ্যালু অনুমতি দিচ্ছি।
.InCellDropdown = True: আমরা গ্রহণযোগ্য ভ্যালুসহ একটি ড্রপ-ডাউন লিস্ট প্রদর্শন করব।
.ErrorTitle = “Error”: আমরা ডেটা-ভ্যালিডেশন এরর ডায়লগ বক্সের টাইটেল সেট করছি।
.ErrorMessage = “Please Provide a Valid Input”: এটি ডেটা ভ্যালিডেশন এরর ডায়লগ বক্সে একটি এরর মেসেজ সেট করবে।
.ShowInput = True: ব্যবহারকারী ডেটা ভ্যালিডেশন রেঞ্জের যেকোনো সেলে ক্লিক করলে এটি ডেটা ভ্যালিডেশন ইনপুট মেসেজ প্রদর্শন করবে।
.ShowError = True: ব্যবহারকারী কোনো অবৈধ ইনপুট দিলে এটি এরর ডায়লগ বক্স দেখাবে।
VBA কোডটি রান করুন
আমরা ইতিমধ্যে আমাদের VBA কোড তৈরি করেছি। এখন, কোডটি সঠিকভাবে কাজ করছে কিনা চেক করার পালা। আমরা এই কোডটি আমাদের বর্তমান শিটে রান করব।
প্রথম, আপনার কীবোর্ডে Alt+F8 চাপুন ম্যাক্রো ডায়লগ বক্স খোলার জন্য।

পরবর্তী, data_validation_from_array নির্বাচন করুন এবং Run-এ ক্লিক করুন।
এখন, Region কলামের যেকোনো সেলে ক্লিক করুন।

এখানে আপনি সেলের পাশে ড্রপ-ডাউন আইকন দেখতে পাচ্ছেন। এখন, ড্রপ-ডাউন আইকনে ক্লিক করুন।

এখানে, আপনি ভ্যালিডেশন লিস্টে সকল ভ্যালু দেখতে পাচ্ছেন। আমরা এই ভ্যালু আমাদের region অ্যারেতে দিয়েছিলাম। এখন, প্রতিটি সেলের জন্য ডেটা সিলেক্ট করুন।

চলুন Product কলামটি চেক করি। Product কলামের যেকোনো সেলে ক্লিক করুন।

এখানেও আমরা একটি ড্রপ-ডাউন আইকন পেয়েছি। এখন, ড্রপ-ডাউন-এ ক্লিক করুন।

যেমন আপনি দেখতে পাচ্ছেন, আমাদের VBA কোডের product অ্যারেতে দেওয়া সকল ভ্যালু এখানে দেখাচ্ছে। তাই, আমরা সফলভাবে এক্সেলে VBA কোড ব্যবহার করে অ্যারে থেকে একটি ভ্যালিডেশন লিস্ট তৈরি করেছি।
এখন, আমাদের দিয়ে অ্যারেতে নেই এমন একটি ভ্যালু দিই। আমরা প্রোডাক্ট “Headphone” দিয়ে চেষ্টা করছি।

এখন, Enter চাপুন। এরপর আপনি নিচেরটি দেখবেন:

যেমন আপনি দেখতে পাচ্ছেন, এটি একটি এরর ডায়লগ বক্স প্রদর্শন করছে। আমরা ইতিমধ্যে আমাদের VBA কোডে এরর টাইটেল এবং এরর মেসেজ সেট করেছি এবং এটি সঠিকভাবে সেটি দেখাচ্ছে।
আরও পড়ুন: এক্সেলে একাধিক সিলেকশনসহ ডেটা ভ্যালিডেশন ড্রপ-ডাউন লিস্ট তৈরি করা
💬 মনে রাখার বিষয়
✎ আপনি ডেটা ভ্যালিডেশনসহ যেকোনো সেল কপি করে অন্য সেলে পেস্ট করতে পারেন। ফলস্বরূপ সেলগুলোর একই ডেটা ভ্যালিডেশন লিস্ট থাকবে।
✎ এটি একটি ডাইনামিক অ্যারে নয়। আপনি যদি আপনার ডেটা ভ্যালিডেশন লিস্ট এক্সপ্যান্ড করতে চান, তবে সেগুলো অ্যারেতে স্ট্রিং হিসেবে যোগ করুন। এটি ভালো কাজ করবে।
উপসংহার
উপসংহারে, আশা করি এই টিউটোরিয়ালটি এক্সেলে VBA কোড ব্যবহার করে ডেটা ভ্যালিডেশন লিস্ট তৈরির জন্য আপনাকে উপকারী জ্ঞান প্রদান করেছে। আমরা সুপারিশ করি আপনি এই সব নির্দেশিকা শিখে আপনার ডেটাসেটে প্রয়োগ করুন। অভ্যাসের ওয়ার্কবুক ডাউনলোড করুন এবং নিজে চেষ্টা করুন। এছাড়াও, কমেন্ট সেকশনে আপনার মূল্যবান ফিডব্যাক দিন। আপনার ফিডব্যাক আমাদের এইরকম টিউটোরিয়াল তৈরি করতে অনুপ্রাণিত রাখে।
বিভিন্ন এক্সেল-সম্পর্কিত সমস্যা ও সমাধানের জন্য আমাদের ওয়েবসাইট Exceldemy.com দেখতে ভুলবেন না।
নতুন পদ্ধতি শিখতে থাকুন এবং বেড়ে যান!
সম্পর্কিত আর্টিকেলসমূহ
- এক্সেল ডেটা ভ্যালিডেশন ফর্মুলায় IF স্টেটমেন্ট ব্যবহার করা (৬ উপায়)
- VBA-তে নেমড রেঞ্জ ব্যবহার করে ডেটা ভ্যালিডেশন লিস্ট তৈরি করা
- এক্সেল VBA-তে 2D অ্যারে ReDim Preserve করা (২ সহজ উপায়)
- এক্সেল VBA: অ্যারে থেকে ডুপ্লিকেট সরানো (২ উদাহরণ)
- VBA-তে অ্যারের গড় বের করা (ম্যাক্রো, UDF, এবং ইউজারফর্ম)