Workbook এবং Worksheet ইভেন্টস
Workbook এবং Worksheet ইভেন্টগুলি হল VBA (Visual Basic for Applications)-এ এমন প্রোগ্রামিং উপাদান, যা Excel এর মধ্যে বিভিন্ন কার্যক্রম বা ব্যবহারকারী ক্রিয়াকলাপের উপর ভিত্তি করে নির্দিষ্ট কার্যক্রম সম্পাদন করতে সহায়ক। এই ইভেন্টগুলি Excel ফাইল বা শীটের পরিবর্তন, আপডেট, সেভ, ওপেন ইত্যাদি অনুসরণ করে কোড কার্যকর করে। Excel ইভেন্টস ব্যবহার করে আপনি বিভিন্ন কর্ম সম্পাদন করতে পারেন, যেমন যখন একটি ওয়ার্কবুক ওপেন হয় বা কোনও সেল পরিবর্তন হয় তখন স্বয়ংক্রিয়ভাবে কোড চালানো।
1. Workbook ইভেন্টস
Workbook ইভেন্টগুলি একটি Workbook এর সঙ্গে সম্পর্কিত বিভিন্ন ইভেন্ট বা কাজগুলোর জন্য ব্যবহৃত হয়, যেমন ওপেন, সেভ, ক্লোজ ইত্যাদি।
Workbook ইভেন্টগুলির উদাহরণ:
Workbook_Open:
এটি যখন Workbook ওপেন হয় তখন চলে।উদাহরণ:
Private Sub Workbook_Open() MsgBox "Welcome to the Workbook!" End Subএই কোডটি Workbook ওপেন করার সময় একটি মেসেজ বক্স দেখাবে।
Workbook_BeforeClose:
এটি যখন Workbook বন্ধ হওয়ার আগে চলে। এটি সাধারণত কাজটি শেষ করার আগে কোনো তথ্য সংরক্ষণ বা প্রক্রিয়া করার জন্য ব্যবহার করা হয়।উদাহরণ:
Private Sub Workbook_BeforeClose(Cancel As Boolean) MsgBox "Goodbye, closing the workbook!" End Subএই কোডটি Workbook বন্ধ হওয়ার আগের সময়ে একটি মেসেজ বক্স দেখাবে।
Workbook_SheetChange:
এটি যখন কোনো শীটে কোনো পরিবর্তন হয় (যেমন সেল মান পরিবর্তন) তখন চলে।উদাহরণ:
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range) MsgBox "Cell " & Target.Address & " has been changed." End Subএই কোডটি শীটের কোনো সেলে পরিবর্তন হলে একটি মেসেজ বক্সে পরিবর্তিত সেলের ঠিকানা দেখাবে।
Workbook_SheetCalculate:
এটি যখন কোন শীটের ফর্মুলা বা গণনা পুনঃগণনা হয় তখন চলে।উদাহরণ:
Private Sub Workbook_SheetCalculate(ByVal Sh As Object) MsgBox "A calculation has occurred in " & Sh.Name End Subএই কোডটি Workbook এর কোনো শীটে কোনো গণনা সম্পন্ন হলে একটি মেসেজ বক্স দেখাবে।
2. Worksheet ইভেন্টস
Worksheet ইভেন্টগুলি নির্দিষ্ট শীটের কার্যক্রমের উপর ভিত্তি করে চলে। আপনি Worksheet এর পরিবর্তন, সেল নির্বাচন, সেল মান পরিবর্তন ইত্যাদির জন্য VBA কোড লিখতে পারেন।
Worksheet ইভেন্টগুলির উদাহরণ:
Worksheet_Change:
এটি যখন শীটের সেলের মান পরিবর্তিত হয় তখন চলে।উদাহরণ:
Private Sub Worksheet_Change(ByVal Target As Range) If Not Intersect(Target, Me.Range("A1")) Is Nothing Then MsgBox "Cell A1 has been changed" End If End Subএই কোডটি যখন শীটের A1 সেল পরিবর্তিত হবে, তখন একটি মেসেজ বক্সে "Cell A1 has been changed" দেখাবে।
Worksheet_SelectionChange:
এটি যখন শীটে সেল নির্বাচন করা হয় তখন চলে। সেল পরিবর্তন হলে এটি নতুন নির্বাচিত সেল সম্পর্কে তথ্য প্রদর্শন করতে পারে।উদাহরণ:
Private Sub Worksheet_SelectionChange(ByVal Target As Range) MsgBox "You selected cell: " & Target.Address End Subএই কোডটি সেল নির্বাচন করার সময় নির্বাচিত সেলের ঠিকানা দেখাবে।
Worksheet_BeforeDoubleClick:
এটি যখন একটি সেলে ডাবল ক্লিক করা হয় তখন চলে। এটি ব্যবহারকারীকে সেল ডাবল ক্লিক করার সময় কোনো কার্যক্রম পরিচালনা করতে সাহায্য করে।উদাহরণ:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) MsgBox "You double-clicked on cell: " & Target.Address Cancel = True ' সেলের ডাবল ক্লিকের পরে সাধারণ কর্মপ্রবাহ বন্ধ করা End Subএই কোডটি সেলে ডাবল ক্লিক করার সময় একটি মেসেজ বক্স প্রদর্শন করবে এবং ডাবল ক্লিকের ডিফল্ট কার্যক্রম (যেমন এডিটিং) বন্ধ করবে।
Worksheet_Activate:
এটি যখন একটি শীট সক্রিয় (activate) হয় তখন চলে।উদাহরণ:
Private Sub Worksheet_Activate() MsgBox "You have activated the worksheet" End Subএই কোডটি শীটটি অ্যাক্টিভেট হওয়ার সময় একটি মেসেজ বক্স দেখাবে।
Worksheet_Deactivate:
এটি যখন একটি শীট ইনঅ্যাকটিভ হয় তখন চলে।উদাহরণ:
Private Sub Worksheet_Deactivate() MsgBox "You have deactivated the worksheet" End Subএই কোডটি যখন শীটটি ইনঅ্যাকটিভ হবে তখন একটি মেসেজ বক্স দেখাবে।
Workbook এবং Worksheet ইভেন্টস ব্যবহারের সুবিধা
- Automated Actions (স্বয়ংক্রিয় কার্যক্রম): Workbook এবং Worksheet ইভেন্টস ব্যবহার করে আপনি অনেক কাজ স্বয়ংক্রিয়ভাবে করতে পারেন, যেমন ফাইল ওপেন হলে অটোমেটিক ক্যালকুলেশন চালানো বা সেল পরিবর্তিত হলে কোনো তথ্য আপডেট করা।
- Data Validation (ডেটা যাচাই): Worksheet ইভেন্টগুলি ব্যবহার করে আপনি ডেটার মান যাচাই করতে পারেন। উদাহরণস্বরূপ, যখন কোনো সেলে একটি নতুন মান ইনপুট করা হয়, তখন সেটা যাচাই করতে পারেন।
- User Interaction (ইউজার ইন্টারঅ্যাকশন): Workbook এবং Worksheet ইভেন্টস ইউজারের ইন্টারঅ্যাকশনের সাথে সম্পর্কিত, যা আপনাকে ইউজারের ক্রিয়াকলাপ অনুযায়ী ডাইনামিক কোড তৈরি করতে সহায়তা করে।
- Error Handling (ত্রুটি হ্যান্ডলিং): ইভেন্টগুলি ত্রুটির প্রেক্ষাপটে স্বয়ংক্রিয়ভাবে কিছু ব্যবস্থা নিতে সহায়ক হতে পারে, যেমন ফাইল বন্ধ হওয়ার আগে কোনও অপর্যাপ্ত ডেটা থাকলে সতর্ক করা।
উপসংহার
Workbook এবং Worksheet ইভেন্টস ব্যবহার করে আপনি Excel ফাইল এবং শীটের কার্যক্রমের উপর ভিত্তি করে কোড চালাতে পারেন। এটি VBA প্রোগ্রামিংয়ে একটি শক্তিশালী টুল, যা আপনাকে Excel অ্যাপ্লিকেশনটিকে আরও স্বয়ংক্রিয়, ইন্টারঅ্যাকটিভ এবং কার্যকরী করে তুলতে সাহায্য করবে।
Read more