VBA-তে User Form তৈরি করা এবং সেট আপ করা
VBA (Visual Basic for Applications)-এ User Form হল একটি গ্রাফিক্যাল ইন্টারফেস (GUI), যা ব্যবহারকারীদের ইনপুট নেওয়ার জন্য তৈরি করা হয়। User Form ব্যবহার করে আপনি ইনপুট ফিল্ড, বাটন, চেকবক্স, রেডিও বাটন ইত্যাদি কন্ট্রোল ব্যবহার করে একটি ইন্টারঅ্যাকটিভ ডায়ালগ বক্স তৈরি করতে পারেন।
User Form তৈরি করে আপনি অ্যাপ্লিকেশনটির ব্যবহারকারীদের জন্য একটি অত্যন্ত সুবিধাজনক ইন্টারফেস তৈরি করতে পারবেন।
User Form তৈরি করা এবং সেট আপ করার ধাপসমূহ
১. User Form তৈরি করা
ধাপ ১: VBA Editor খুলুন
- প্রথমে, আপনি যেকোনো মাইক্রোসফট অফিস অ্যাপ্লিকেশন (যেমন Excel) খুলুন।
- তারপর Alt + F11 প্রেস করে VBA Editor (Visual Basic for Applications) খুলুন।
ধাপ ২: User Form Insert করা
- VBA Editor-এ, বাম দিকের Project Explorer উইন্ডোতে আপনার প্রজেক্ট নির্বাচন করুন।
- এরপর, Insert মেনু থেকে UserForm নির্বাচন করুন।
এটি একটি নতুন UserForm তৈরি করবে। আপনি এই UserForm এর মাধ্যমে একটি কাস্টম ডায়ালগ বক্স তৈরি করতে পারবেন।
ধাপ ৩: User Form Design করা
- UserForm ডেভেলপ করার জন্য, Toolbox উইন্ডোতে বিভিন্ন কন্ট্রোল এলিমেন্ট (যেমন: TextBox, CommandButton, Label, ComboBox ইত্যাদি) পাবেন।
- কন্ট্রোল এলিমেন্টগুলোকে ড্র্যাগ এবং ড্রপ করে UserForm এ যুক্ত করতে পারবেন।
- Properties Window ব্যবহার করে কন্ট্রোলগুলোর প্রপার্টি যেমন: নাম, টেক্সট, আকার, রঙ ইত্যাদি কাস্টমাইজ করা যায়।
২. User Form এ কন্ট্রোল যোগ করা
১. TextBox:
ব্যবহারকারীর ইনপুট গ্রহণ করার জন্য TextBox ব্যবহার করা হয়। আপনি এটি ব্যবহার করে টেক্সট অথবা নম্বর ইনপুট নিতে পারবেন।
Dim txtInput As TextBox
Set txtInput = UserForm1.Controls.Add("Forms.TextBox.1")
txtInput.Name = "txtName"
txtInput.Top = 20
txtInput.Left = 20
txtInput.Width = 100২. CommandButton:
কোনো অ্যাকশন বা ফাংশন কার্যকর করার জন্য CommandButton ব্যবহার করা হয়। উদাহরণস্বরূপ, কোনো সাবমিট বা ক্লোজ বাটন।
Dim btnSubmit As CommandButton
Set btnSubmit = UserForm1.Controls.Add("Forms.CommandButton.1")
btnSubmit.Name = "btnSubmit"
btnSubmit.Caption = "Submit"
btnSubmit.Top = 50
btnSubmit.Left = 20
btnSubmit.Width = 100৩. Label:
একটি Label কন্ট্রোল ব্যবহারকারীর জন্য টেক্সট বা নির্দেশনা দেখানোর জন্য ব্যবহার করা হয়।
Dim lblName As Label
Set lblName = UserForm1.Controls.Add("Forms.Label.1")
lblName.Name = "lblName"
lblName.Caption = "Enter your name:"
lblName.Top = 20
lblName.Left = 140৪. ComboBox:
এটি একটি ড্রপডাউন মেনু, যা ব্যবহারকারীদের একটি তালিকা থেকে নির্বাচিত মান দিতে সাহায্য করে।
Dim cmbOptions As ComboBox
Set cmbOptions = UserForm1.Controls.Add("Forms.ComboBox.1")
cmbOptions.Name = "cmbOptions"
cmbOptions.AddItem "Option 1"
cmbOptions.AddItem "Option 2"
cmbOptions.AddItem "Option 3"
cmbOptions.Top = 80
cmbOptions.Left = 20৫. CheckBox:
এক বা একাধিক বিকল্প চেক বা আনচেক করার জন্য CheckBox ব্যবহার করা হয়।
Dim chkOption As CheckBox
Set chkOption = UserForm1.Controls.Add("Forms.CheckBox.1")
chkOption.Name = "chkOption"
chkOption.Caption = "Option 1"
chkOption.Top = 110
chkOption.Left = 20৩. User Form Code লেখা
ফর্মটি কাস্টমাইজ করার পর, আপনি প্রতিটি কন্ট্রোলের জন্য কোড যুক্ত করতে পারেন, যেমন বাটন ক্লিক করার পর কি হবে তা নির্ধারণ করা।
Button ক্লিক করার জন্য কোড লিখুন:
Private Sub btnSubmit_Click()
MsgBox "Hello, " & txtName.Value ' ইনপুট নাম প্রদর্শন
Me.Hide ' ফর্ম বন্ধ করে
End Subএখানে, যখন btnSubmit বাটন ক্লিক করা হবে, তখন txtName থেকে নেওয়া ইনপুটটি একটি মেসেজবক্সে দেখানো হবে এবং ফর্মটি বন্ধ হবে।
৪. UserForm চালানো
UserForm তৈরি এবং সেটআপ করার পর, আপনি এটিকে রান করতে পারেন।
UserForm চালানোর কোড:
Sub ShowUserForm()
UserForm1.Show
End Subএখানে, ShowUserForm সাবরুটিনটি UserForm1 চালাবে। আপনি এটি একটি বাটন বা অন্য কোনো ইভেন্টের সাথে যুক্ত করতে পারেন।
৫. User Form এর প্রপার্টি এবং ইভেন্ট
User Form-এ বিভিন্ন প্রপার্টি এবং ইভেন্ট থাকে, যেগুলি আপনাকে ফর্মের আচরণ কাস্টমাইজ করতে সাহায্য করে।
- Show: ফর্মটি চালানোর জন্য ব্যবহৃত হয়।
- Hide: ফর্মটি লুকানোর জন্য ব্যবহৃত হয়।
- Name: ফর্ম বা কন্ট্রোলের নাম সেট করার জন্য ব্যবহৃত হয়।
- Caption: কন্ট্রোলের টেক্সট বা শিরোনাম সেট করার জন্য ব্যবহৃত হয়।
উপসংহার
VBA-তে User Form তৈরি করার মাধ্যমে আপনি একটি গ্রাফিক্যাল ইন্টারফেস তৈরি করতে পারেন যা ব্যবহারকারীদের সঙ্গে ইন্টারঅ্যাক্ট করতে সাহায্য করে। আপনি বিভিন্ন কন্ট্রোল (যেমন TextBox, CommandButton, Label ইত্যাদি) যোগ করে, কাস্টম কোড ব্যবহার করে এবং বিভিন্ন ইভেন্টের মাধ্যমে ফর্মটি কার্যকরী করতে পারেন। এটি বিশেষ করে অ্যাপ্লিকেশনগুলিতে ব্যবহারকারীর ইনপুট গ্রহণের জন্য এবং ফ্লেক্সিবল ইন্টারফেস তৈরি করার জন্য খুবই কার্যকর।
Read more