UserForm ইভেন্টস এবং তাদের ব্যবহার
VBA (Visual Basic for Applications)-এ UserForm একটি গ্রাফিক্যাল ইন্টারফেস (GUI) তৈরি করার জন্য ব্যবহৃত হয়, যা ব্যবহারকারী থেকে ইনপুট নেয় এবং এক্সেল ডকুমেন্টের সাথে ইন্টারঅ্যাক্ট করে। UserForm ইভেন্টস হল সেই বিশেষ ঘটনা যা ব্যবহারকারী বা কোডের মাধ্যমে Trigger (চালানো) হয় এবং ফর্মের উপর নির্দিষ্ট কাজ করতে সহায়তা করে। এগুলি ফর্ম বা কন্ট্রোলের সাথে যুক্ত থাকে, এবং কন্ট্রোলের বিভিন্ন কর্মকাণ্ডের ভিত্তিতে ইভেন্টগুলি ঘটতে থাকে।
এখানে আমরা UserForm ইভেন্টস এবং তাদের ব্যবহার সম্পর্কে বিস্তারিত আলোচনা করব।
১. UserForm ইভেন্টসের ধারণা
UserForm এর সাথে সম্পর্কিত ইভেন্টগুলি হল:
- UserForm এর উপর কোনো পরিবর্তন ঘটলে যে ইভেন্টটি ঘটে (যেমন: ফর্মটি খোলা, বন্ধ হওয়া, সক্রিয় হওয়া)।
- কোনো কন্ট্রোলের (যেমন: বাটন, টেক্সট বক্স) সাথে ব্যবহারকারী ইন্টারঅ্যাক্ট করলে যে ইভেন্টগুলি ঘটে (যেমন: ক্লিক, চেঞ্জ, মোভ)।
প্রধান UserForm ইভেন্টগুলি হল: Initialize, Activate, Deactivate, QueryClose, Terminate, এবং Resize।
২. UserForm ইভেন্টসের তালিকা ও ব্যবহার
১. Initialize (ইনিশিয়ালাইজ)
Initialize ইভেন্টটি UserForm যখন প্রথম তৈরি হয় বা ওপেন হয়, তখন ঘটে। এটি ফর্মে কোনো ডিফল্ট সেটিংস বা কন্ট্রোল ইনিশিয়ালাইজ (প্রাথমিকভাবে সেট) করার জন্য ব্যবহৃত হয়।
ব্যবহার:
Private Sub UserForm_Initialize()
Me.Caption = "Welcome to My Form" ' ফর্মের শিরোনাম সেট করা
txtName.Value = "" ' নামের ইনপুট ফিল্ডের ডিফল্ট মান খালি করা
End Subএখানে, Initialize ইভেন্টের মধ্যে আপনি ফর্মের ইনিশিয়াল অবস্থান এবং কন্ট্রোলের মান নির্ধারণ করতে পারেন।
২. Activate (একটিভেট)
Activate ইভেন্টটি যখন UserForm সক্রিয় হয় বা কনট্রোলগুলির সাথে প্রথম ইন্টারঅ্যাকশন হয়, তখন ঘটে। এটি তখন ঘটে যখন ফর্মটি স্ক্রীনে আসে বা তখনকার অবস্থা পরিবর্তন হয়।
ব্যবহার:
Private Sub UserForm_Activate()
MsgBox "Form is now active!" ' ফর্ম সক্রিয় হলে মেসেজ দেখানো
End Subএখানে, ফর্মটি সক্রিয় হওয়ার সময় একটি মেসেজ বক্স দেখানো হচ্ছে।
৩. Deactivate (ডি-একটিভেট)
Deactivate ইভেন্টটি তখন ঘটে যখন UserForm আর সক্রিয় না থাকে, অর্থাৎ ফর্মটি অন্য কোনো উইন্ডোতে চলে যায় বা বন্ধ হয়ে যায়।
ব্যবহার:
Private Sub UserForm_Deactivate()
MsgBox "Form is now inactive!" ' ফর্ম বন্ধ হলে মেসেজ দেখানো
End Subএখানে, ফর্মটি ডি-একটিভ হলে একটি মেসেজ দেখানো হচ্ছে।
৪. QueryClose (কোয়্যারি ক্লোজ)
QueryClose ইভেন্টটি তখন ঘটে যখন ব্যবহারকারী ফর্মটি বন্ধ করার চেষ্টা করে। এটি আপনাকে ফর্মটি বন্ধ হওয়ার আগে কিছু যাচাই করার সুযোগ দেয় (যেমন, ইউজারকে পরিবর্তন সেভ করার জন্য জিজ্ঞাসা করা)।
ব্যবহার:
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
If MsgBox("Are you sure you want to close?", vbYesNo) = vbNo Then
Cancel = True ' ফর্ম বন্ধ হওয়া বাতিল করা
End If
End Subএখানে, QueryClose ইভেন্টটি ব্যবহারকারীকে ফর্মটি বন্ধ করার আগে নিশ্চিত হতে বলছে। যদি ব্যবহারকারী "No" নির্বাচন করে, তবে Cancel = True ব্যবহার করে ফর্মটি বন্ধ হওয়ার কাজ বাতিল করা হয়।
৫. Terminate (টার্মিনেট)
Terminate ইভেন্টটি তখন ঘটে যখন ফর্মটি সম্পূর্ণরূপে বন্ধ হয়ে যায়। এটি ফর্মের সম্পূর্ণ মৃত্যুর সময় ঘটে এবং সাধারণত ফর্মের শেষে রিসোর্স ক্লিনআপ করার জন্য ব্যবহৃত হয়।
ব্যবহার:
Private Sub UserForm_Terminate()
MsgBox "Form is terminated!" ' ফর্ম সম্পূর্ণরূপে বন্ধ হলে মেসেজ দেখানো
End Subএখানে, ফর্মটি সম্পূর্ণভাবে বন্ধ হয়ে গেলে একটি মেসেজ দেখানো হচ্ছে।
৬. Resize (রিসাইজ)
Resize ইভেন্টটি তখন ঘটে যখন ফর্মের আকার পরিবর্তিত হয়। যখন ব্যবহারকারী ফর্মটি টেনে বড় বা ছোট করে, তখন এই ইভেন্টটি ট্রিগার হয়।
ব্যবহার:
Private Sub UserForm_Resize()
MsgBox "Form is resized!" ' ফর্মের আকার পরিবর্তিত হলে মেসেজ দেখানো
End Subএখানে, ফর্মের আকার পরিবর্তিত হলে একটি মেসেজ প্রদর্শিত হবে।
৩. কন্ট্রোল ইভেন্টস
UserForm-এর ভিতরে বিভিন্ন কন্ট্রোল যেমন Button, TextBox, ComboBox, CheckBox ইত্যাদি ব্যবহার করা হয়। এই কন্ট্রোলগুলির নিজস্ব ইভেন্ট থাকে, যা ব্যবহারকারী তাদের সাথে ইন্টারঅ্যাক্ট করলে ট্রিগার হয়।
১. CommandButton Click Event (বাটন ক্লিক করা)
Private Sub btnSubmit_Click()
MsgBox "Button clicked!" ' বাটন ক্লিক হলে মেসেজ প্রদর্শন
End Subএখানে, btnSubmit_Click ইভেন্টটি ট্রিগার হবে যখন ব্যবহারকারী btnSubmit বাটনে ক্লিক করবে।
২. TextBox Change Event (টেক্সট চেঞ্জ হওয়া)
Private Sub txtName_Change()
MsgBox "Text changed!" ' টেক্সট ফিল্ডের মান পরিবর্তিত হলে মেসেজ দেখানো
End Subএখানে, txtName_Change ইভেন্টটি তখন ঘটে যখন ব্যবহারকারী টেক্সট বক্সের মান পরিবর্তন করবে।
৩. ComboBox Selection Change Event (কম্বো বক্স নির্বাচন পরিবর্তন)
Private Sub cmbOptions_Change()
MsgBox "Selection changed!" ' কম্বো বক্সের নির্বাচন পরিবর্তিত হলে মেসেজ দেখানো
End Subএখানে, cmbOptions_Change ইভেন্টটি তখন ঘটে যখন ব্যবহারকারী কম্বো বক্সে কোনো আইটেম নির্বাচন করবে।
৪. CheckBox Click Event (চেকবক্স ক্লিক করা)
Private Sub chkAgree_Click()
If chkAgree.Value = True Then
MsgBox "You agreed!"
Else
MsgBox "You did not agree!"
End If
End Subএখানে, chkAgree_Click ইভেন্টটি তখন ঘটে যখন ব্যবহারকারী চেকবক্সে ক্লিক করবে।
UserForm ইভেন্টসের কিছু গুরুত্বপূর্ণ ব্যবহার
- ডেটা প্রক্রিয়াকরণ: ইউজার ফর্মে ডেটা ইনপুট নেওয়ার পরে তা প্রসেস বা ভ্যালিডেট করার জন্য ইভেন্ট ব্যবহার করা যায়।
- ইন্টারফেস কাস্টমাইজেশন: ইউজার ফর্মের প্রপার্টি এবং কন্ট্রোলগুলো বিভিন্ন ইভেন্টের মাধ্যমে কাস্টমাইজ করা যায়।
- ইনপুট যাচাই: ইউজার ইনপুট যাচাই করার জন্য
ChangeবাClickইভেন্ট ব্যবহার করে ভ্যালিডেশন করা যায়। - কাস্টম ইন্টারফেস আচরণ: ইভেন্ট ব্যবহার করে ফর্মের আচরণ নিয়ন্ত্রণ করা যায় যেমন ফর্মের আকার পরিবর্তন, ক্লোজ ইত্যাদি।
উপসংহার
UserForm ইভেন্টস ব্যবহার করে আপনি ফর্মের আচরণ এবং কন্ট্রোলগুলির কার্যকারিতা নিয়ন্ত্রণ করতে পারেন। Initialize, Activate, Deactivate, QueryClose ইত্যাদি ইভেন্টগুলি ফর্মের আচার-আচরণ এবং কার্যক্ষমতা নির্ধারণ করতে সহায়ক, এবং Click, Change, MouseMove ইত্যাদি কন্ট্রোল ইভেন্টগুলো ব্যবহারকারীর ইন্টারঅ্যাকশনগুলির মাধ্যমে কার্যকরী হয়। এগুলি ফর্ম তৈরির প্রক্রিয়াকে আরও গতিশীল এবং ইন্টারঅ্যাকটিভ করতে সাহায্য করে।
Read more