TOP

VBA-पाठ 11.1. कार्यपुस्तिका घटनाएँ (Workbook घटनाएँ)

हमारे पास कार्यपुस्तिका ईवेंट (जैसे खोलना, बंद करना आदि) हो सकते हैं जो VBA कोड के लिए ट्रिगर (स्विच) हो सकते हैं।


वर्कबुक_ओपन (पुस्तक खोलना)

कार्यपुस्तिका खुलने पर निर्देशों का पालन करने के लिए, ThisWorkbook पर जाएँ और Workbook चुनें:

Workbook_Open ईवेंट डिफ़ॉल्ट रूप से जोड़ा जाएगा और कार्यपुस्तिका खोले जाने पर सक्रिय हो जाएगा:

Private Sub Workbook_Open()

End Sub

उदाहरण के लिए, यदि हम निम्नलिखित निर्देश जोड़ते हैं, तो कार्यपुस्तिका खुलने पर संवाद बॉक्स प्रदर्शित होगा:

Private Sub Workbook_Open()
     MsgBox "Welcome"
End Sub

कार्यपुस्तिका_पहले बंद करें (कार्यपुस्तिका बंद करने से पहले की घटना)

कार्यपुस्तिका बंद करने से पहले निर्देशों को निष्पादित करने के लिए, beforeClose चुनें:

Private Sub Workbook_BeforeClose(Cancel As Boolean)

End Sub

कार्यपुस्तिका को बंद करने को वेरिएबल "Cancel" को True पर सेट करके रद्द किया जा सकता है।

नीचे एक उदाहरण दिया गया है जिसमें उपयोगकर्ता से कार्यपुस्तिका बंद करने की पुष्टि मांगी जाती है:

Private Sub Workbook_BeforeClose(Cancel As Boolean)
     'यदि उपयोगकर्ता NO के साथ प्रतिक्रिया करता है, तो वेरिएबल Cancel का मान TRUE होगा (जो कार्यपुस्तिका को बंद करना रद्द कर देगा)
     If MsgBox("Do you really want to close this workbook ?", 36, "I confirm") = vbNo Then
         Cancel = True
     End If
End Sub

Workbook_BeforeSave (कार्यपुस्तिका सहेजने से पहले की घटना)

यह घटना कार्यपुस्तिका सहेजे जाने से ठीक पहले घटित होती है:

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)

End Sub

किसी फ़ाइल को सहेजना वेरिएबल "Cancel" को True पर सेट करके रद्द किया जा सकता है।

Workbook_BeforePrint (पुस्तक छापने से पहले की घटना)

यह घटना कार्यपुस्तिका मुद्रित होने से पहले होती है:

Private Sub Workbook_BeforePrint(Cancel As Boolean)

End Sub

वेरिएबल "Cancel" को True पर सेट करके फ़ाइल की प्रिंटिंग रद्द की जा सकती है।

Workbook_AfterSave (कार्यपुस्तिका सहेजने के बाद की घटना)

यह घटना कार्यपुस्तिका सहेजने के तुरंत बाद घटित होती है:

Private Sub Workbook_AfterSave(ByVal Success As Boolean)

End Sub

वर्कबुक_शीटएक्टिवेट (वर्कशीट स्विच इवेंट)

यह घटना तब घटित होती है जब आप किसी कार्यपुस्तिका में कार्यपत्रकों के बीच स्विच करते हैं:

Private Sub Workbook_SheetActivate(ByVal Sh As Object)

End Sub

इस उदाहरण में, सक्रिय शीट का नाम संवाद बॉक्स में प्रदर्शित होता है:

Private Sub Workbook_SheetActivate(ByVal Sh As Object)
     MsgBox "Name of Sheet : " & Sh.Name
End Sub

Workbook_SheetBeforeDoubleClick (सेल पर डबल-क्लिक ईवेंट)

यह घटना तब होती है जब वर्कशीट सेल पर डबल-क्लिक किया जाता है:

Private Sub Workbook_SheetBeforeDoubleClick(ByVal Sh As Object, ByVal Target As Range, Cancel As Boolean)

End Sub

उदाहरण के लिए, हम चयनित शीट के आधार पर सेल भरण रंग जोड़ने के लिए इस ईवेंट का उपयोग कर सकते हैं:

Private Sub Workbook_SheetBeforeDoubleClick(ByVal Sh As Object, ByVal Target As Range, Cancel As Boolean)
     If Sh.Name = "Sheet1" Then
         Target.Interior.Color = RGB(255, 108, 0) 'नारंगी रंग
     Else
         Target.Interior.Color = RGB(136, 255, 0) 'हरा रंग
     End If
End Sub

Workbook_SheetBeforeRightClick (राइट क्लिक से पहले की घटना)

यह घटना दाएँ माउस के क्लिक करने से पहले ही घटित होती है:

Private Sub Workbook_SheetBeforeRightClick(ByVal Sh As Object, ByVal Target As Range, Cancel As Boolean)

End Sub

कार्यपुस्तिका_शीटपरिवर्तन (शीट सामग्री परिवर्तन घटना)

यह घटना तब घटित होती है जब कार्यपत्रक की सामग्री बदलती है:

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)

End Sub

वर्कबुक_शीटकैलकुलेट (शीटकैलकुलेट इवेंट)

यह घटना तब घटित होती है जब किसी वर्कशीट में डेटा की गणना या पुनर्गणना की जाती है:

Private Sub Workbook_SheetCalculate(ByVal Sh As Object)

End Sub

कार्यपुस्तिका_शीट चयन परिवर्तन (चयनित सेल श्रेणी परिवर्तन घटना)

यह घटना तब घटित होती है जब स्प्रेडशीट में कक्षों की चयनित श्रेणी की सामग्री बदलती है:

Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)

End Sub

इस उदाहरण में, यदि सेल A1 खाली है तो भरण रंग बदल जाता है:

Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
     If Range("A1") = "" Then
         Target.Interior.Color = RGB(124, 255, 255) 'नीला रंग
    End If
End Sub

वर्कबुक_न्यूशीट (नई शीट इवेंट जोड़ें)

यह घटना तब घटित होती है जब कार्यपुस्तिका में कोई नई शीट जोड़ी जाती है:

Private Sub Workbook_NewSheet(ByVal Sh As Object)

End Sub

वर्कबुक_शीटफ़ॉलोहाइपरलिंक (लिंक क्लिक इवेंट)

यह घटना तब होती है जब एक लिंक (हाइपरटेक्स्ट) पर क्लिक किया जाता है:

Private Sub Workbook_SheetFollowHyperlink(ByVal Sh As Object, ByVal Target As Hyperlink)

End Sub