एक्सेल वीबीए इवेंट्स

घटनाएं हर समय हो रही हैं जब कोई उपयोगकर्ता एक्सेल कार्यपुस्तिका खोलता है और विभिन्न क्रियाएं करना शुरू कर देता है जैसे कोशिकाओं में डेटा दर्ज करना या शीट्स के बीच स्थानांतरित करना

विजुअल बेसिक एडिटर (ALT+F11) के भीतर, सब रूटीन पहले ही सेट हो चुके होते हैं, जिन्हें उपयोगकर्ता द्वारा कुछ करने पर निकाल दिया जा सकता है। सेल में डेटा दर्ज करना। सब रूटीन कोई एक्शन कोड प्रदान नहीं करता है, केवल एक 'सब' स्टेटमेंट और एक 'एंड सब' स्टेटमेंट जिसमें उनके बीच कोई कोड नहीं है। वे प्रभावी रूप से निष्क्रिय हैं इसलिए जब तक आप कुछ कोड दर्ज नहीं करते तब तक कुछ नहीं होता है।

वर्कशीट में 'चेंज' इवेंट पर आधारित एक उदाहरण यहां दिया गया है:

एक वीबीए प्रोग्रामर के रूप में, आप कुछ चीजें करने के लिए कोड में जोड़ सकते हैं जब उपयोगकर्ता एक विशिष्ट कार्रवाई करता है। यह आपको उपयोगकर्ता को नियंत्रित करने का मौका देता है, और उन्हें ऐसी कार्रवाइयां करने से रोकता है जो आप नहीं चाहते कि वे करें और जो आपकी कार्यपुस्तिका को नुकसान पहुंचा सकती हैं। उदाहरण के लिए, आप चाहते हैं कि वे किसी अन्य नाम से कार्यपुस्तिका की अपनी व्यक्तिगत प्रति सहेज लें, ताकि वे मूल को प्रभावित न करें, जिसका उपयोग कई उपयोगकर्ताओं द्वारा किया जा सकता है।

यदि वे कार्यपुस्तिका को बंद कर देते हैं, तो उन्हें अपने परिवर्तनों को सहेजने के लिए स्वचालित रूप से प्रेरित किया जाएगा। हालांकि, कार्यपुस्तिका में 'पहले बंद' घटना है और आप कार्यपुस्तिका को बंद होने और 'सहेजें' घटना को बंद करने से रोकने के लिए कोड दर्ज कर सकते हैं। फिर आप वर्कशीट में ही एक बटन जोड़ सकते हैं और उस पर अपना 'सेव' रूटीन डाल सकते हैं। आप 'सहेजें' रूटीन को 'पहले सहेजें' ईवेंट का उपयोग करके अक्षम भी कर सकते हैं

घटनाएँ कैसे काम करती हैं, इसकी समझ एक VBA प्रोग्रामर के लिए नितांत आवश्यक है।

आयोजनों के प्रकार

वर्कबुक आयोजन - इन घटनाओं को इस आधार पर निकाल दिया जाता है कि उपयोगकर्ता स्वयं कार्यपुस्तिका के साथ क्या करता है। उनमें उपयोगकर्ता क्रियाएं शामिल हैं जैसे कार्यपुस्तिका खोलना, कार्यपुस्तिका को बंद करना, कार्यपुस्तिका को सहेजना, शीट जोड़ना या हटाना

कार्यपत्रक घटनाएँ - किसी विशिष्ट कार्यपत्रक पर कार्रवाई करने वाले उपयोगकर्ता द्वारा इन घटनाओं को निकाल दिया जाता है। कार्यपुस्तिका के भीतर प्रत्येक कार्यपत्रक में एक अलग कोड मॉड्यूल होता है, जिसमें विशेष रूप से उस कार्यपत्रक के लिए विभिन्न ईवेंट होते हैं (सभी कार्यपत्रकों के लिए नहीं)। इनमें उपयोगकर्ता क्रियाएं शामिल हैं जैसे सेल की सामग्री को बदलना, सेल पर डबल क्लिक करना, या सेल पर राइट क्लिक करना।

सक्रिय एक्स नियंत्रण घटनाक्रम - एक्सेल रिबन में 'डेवलपर' टैब पर 'इन्सर्ट' आइकन का उपयोग करके वर्कशीट में एक्टिव एक्स कंट्रोल्स जोड़े जा सकते हैं। ये अक्सर बटन नियंत्रण होते हैं जो उपयोगकर्ता को आपके कोड के नियंत्रण में विभिन्न क्रियाएं करने में सक्षम बनाते हैं, लेकिन वे ड्रॉप डाउन जैसी वस्तुएं भी हो सकते हैं। कार्यपत्रक पर प्रपत्र नियंत्रणों के विपरीत सक्रिय X नियंत्रणों का उपयोग करने से प्रोग्राम योग्यता के लिए एक संपूर्ण गुंजाइश मिलती है। सक्रिय X नियंत्रण आपको किसी कार्यपत्रक में प्रपत्र नियंत्रणों का उपयोग करने की तुलना में प्रोग्रामिंग के दृष्टिकोण से कहीं अधिक लचीलापन प्रदान करते हैं।

उदाहरण के लिए, आपके पास अपनी वर्कशीट पर दो ड्रॉप डाउन नियंत्रण हो सकते हैं। आप चाहते हैं कि दूसरी ड्रॉप डाउन में उपलब्ध सूची उस पर आधारित हो जिसे उपयोगकर्ता ने पहली ड्रॉप डाउन में चुना था। पहले ड्रॉप डाउन पर 'चेंज' इवेंट का उपयोग करके, आप उपयोगकर्ता द्वारा चुने गए को पढ़ने के लिए कोड बना सकते हैं और फिर दूसरे ड्रॉप डाउन को अपडेट कर सकते हैं। आप दूसरे ड्रॉप डाउन को तब तक निष्क्रिय भी कर सकते हैं जब तक कि उपयोगकर्ता ने पहली ड्रॉप डाउन में चयन नहीं किया हो

UserForm घटनाक्रम - आप पॉप-अप के रूप में उपयोग करने के लिए पेशेवर दिखने वाले फॉर्म को सम्मिलित और डिज़ाइन कर सकते हैं। आपके द्वारा अपने प्रपत्र पर रखे गए सभी नियंत्रण सक्रिय X नियंत्रण हैं और उनके पास सक्रिय X नियंत्रण के समान ईवेंट हैं जिन्हें आप किसी कार्यपत्रक पर रख सकते हैं

चार्ट घटनाक्रम - ये घटनाएँ केवल एक चार्ट शीट से संबंधित हैं, न कि किसी कार्यपत्रक के भाग के रूप में प्रदर्शित होने वाले चार्ट से। इन घटनाओं में चार्ट का आकार बदलना या चार्ट का चयन करना शामिल है।

आवेदन घटनाक्रम - ये वीबीए में एप्लिकेशन ऑब्जेक्ट का उपयोग करते हैं। जब एक निश्चित कुंजी दबाया जाता है या एक निश्चित समय तक पहुंच जाता है तो उदाहरण कोड को निकाल दिया जा सकता है। आप ऐसी स्थिति को प्रोग्राम कर सकते हैं जहां कार्यपुस्तिका को 24/7 खुला छोड़ दिया जाता है और यह एक बाहरी स्रोत से रात भर पूर्व-निर्धारित समय पर डेटा आयात करता है।

घटनाओं में कोड का उपयोग करने के खतरे

जब आप कुछ करने के लिए कोड लिखते हैं जब उपयोगकर्ता एक निश्चित कार्रवाई करता है, तो आपको यह ध्यान में रखना होगा कि आपका कोड अन्य घटनाओं को ट्रिगर कर सकता है, जो आपके कोड को निरंतर लूप में डाल सकता है।

उदाहरण के लिए, मान लीजिए कि आप वर्कशीट पर 'चेंज' इवेंट का उपयोग करते हैं ताकि जब उपयोगकर्ता किसी सेल में कोई मान डालता है, तो उस सेल के आधार पर गणना तुरंत उसके दाईं ओर सेल में रखी जाती है।

यहाँ समस्या यह है कि परिकलित मान को सेल में रखने से एक और 'चेंज' घटना शुरू हो जाती है, जो बदले में एक और 'चेंज' इवेंट को ट्रिगर करती है, और इसी तरह जब तक आपके कोड का उपयोग करने के लिए कॉलम से बाहर नहीं हो जाता है, और ऊपर फेंक देता है एक त्रुटि संदेश।

ईवेंट के लिए कोड लिखते समय आपको सावधानी से सोचने की आवश्यकता है ताकि यह सुनिश्चित हो सके कि अन्य ईवेंट अनजाने में ट्रिगर नहीं होंगे

घटनाओं को अक्षम करें

आप इस समस्या को हल करने के लिए ईवेंट को अक्षम करने के लिए कोड का उपयोग कर सकते हैं। आपको अपने ईवेंट कोड के चलने के दौरान ईवेंट को अक्षम करने के लिए कोड को शामिल करना होगा और फिर कोड के अंत में ईवेंट को फिर से सक्षम करना होगा। इसे कैसे करें इसका एक उदाहरण यहां दिया गया है:

1234 उप अक्षम घटनाएँ ()आवेदन। सक्षम करें = गलतआवेदन। सक्षम करें = सत्यअंत उप

ध्यान रखें कि यह एक्सेल एप्लिकेशन में सभी घटनाओं को अक्षम कर देता है, इसलिए यह एक्सेल के भीतर अन्य कार्यों को भी प्रभावित करेगा। यदि आप किसी भी कारण से इसका उपयोग करते हैं, तो सुनिश्चित करें कि ईवेंट बाद में वापस चालू हो जाएं।

घटनाओं में पैरामीटर्स का महत्व

ईवेंट में आमतौर पर पैरामीटर होते हैं जिनका उपयोग आप यह जानने के लिए कर सकते हैं कि उपयोगकर्ता क्या कर रहा है और वे किस सेल स्थान में हैं।

उदाहरण के लिए, वर्कशीट चेंज इवेंट इस तरह दिखता है:

1 निजी उप वर्कशीट_चेंज (ByVal लक्ष्य सीमा के रूप में)

रेंज ऑब्जेक्ट का उपयोग करके, आप उस सेल रो/कॉलम कोऑर्डिनेट का पता लगा सकते हैं जिसमें उपयोगकर्ता वास्तव में है।

1234 निजी उप वर्कशीट_चेंज (ByVal लक्ष्य सीमा के रूप में)MsgBox लक्ष्य। कॉलमMsgBox लक्ष्य.पंक्तिअंत उप

यदि आप चाहते हैं कि आपका कोड केवल एक निश्चित कॉलम या पंक्ति संख्या पर काम करे, तो आप एक शर्त जोड़ते हैं जो सबरूटीन से बाहर निकलती है यदि कॉलम आवश्यक नहीं है।

123 निजी उप वर्कशीट_चेंज (ByVal लक्ष्य सीमा के रूप में)यदि लक्ष्य। कॉलम 2 तो उप से बाहर निकलेंअंत उप

यह आपके कोड की कई घटनाओं को ट्रिगर करने की समस्या के आसपास हो जाता है, क्योंकि यह केवल तभी काम करेगा जब उपयोगकर्ता ने कॉलम 2 (कॉलम बी) में एक सेल को बदल दिया हो।

कार्यपुस्तिका ईवेंट उदाहरण (संपूर्ण नहीं)

कार्यपुस्तिका ईवेंट VBE प्रोजेक्ट एक्सप्लोरर में 'दिसवर्कबुक' ऑब्जेक्ट के अंतर्गत पाए जाते हैं। आपको कोड विंडो पर पहली ड्रॉप डाउन पर 'वर्कबुक' का चयन करना होगा और फिर दूसरा ड्रॉप डाउन आपको उपलब्ध सभी घटनाओं को दिखाएगा

वर्कबुक ओपन इवेंट

जब भी किसी उपयोगकर्ता द्वारा कार्यपुस्तिका खोली जाती है तो यह घटना बंद हो जाती है। आप किसी उपयोगकर्ता के उपयोगकर्ता नाम को कैप्चर करके उसका स्वागत संदेश देने के लिए इसका उपयोग कर सकते हैं

123 निजी उप कार्यपुस्तिका_ओपन ()MsgBox "स्वागत है" और एप्लिकेशन। उपयोगकर्ता नामअंत उप

यह देखने के लिए कि क्या वे कार्यपुस्तिका तक पहुँचने के लिए अधिकृत हैं, आप एक छिपी हुई शीट पर रखी सूची के विरुद्ध उनका उपयोगकर्ता नाम भी देख सकते हैं। यदि वे अधिकृत उपयोगकर्ता नहीं हैं, तो आप एक संदेश प्रदर्शित कर सकते हैं और कार्यपुस्तिका को बंद कर सकते हैं ताकि वे इसका उपयोग न कर सकें।

कार्यपुस्तिका नई शीट घटना

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

आप इस कोड का उपयोग केवल स्वयं को एक नई शीट जोड़ने की अनुमति देने के लिए कर सकते हैं, बजाय इसके कि अलग-अलग उपयोगकर्ता सभी शीट जोड़ रहे हों और कार्यपुस्तिका में गड़बड़ी कर रहे हों

1234567 निजी उप कार्यपुस्तिका_न्यूशीट (बायवैल श वस्तु के रूप में)एप्लिकेशन। डिस्प्ले अलर्ट = गलतयदि Application.UserName "रिचर्ड" तोश्री हटाएंअगर अंतएप्लिकेशन.डिस्प्लेअलर्ट्स = ट्रूअंत उप

ध्यान दें कि आपको अलर्ट को बंद करने की आवश्यकता है क्योंकि शीट हटाए जाने पर उपयोगकर्ता चेतावनी दिखाई देगी जो उपयोगकर्ता को आपके कोड को दरकिनार करने की अनुमति देती है। सुनिश्चित करें कि आप अलर्ट को बाद में वापस चालू करते हैं!

VBA कोड उदाहरण खोज कर थक गए हैं? ऑटोमैक्रो का प्रयास करें!

सेव इवेंट से पहले वर्कबुक

यह घटना तब शुरू होती है जब उपयोगकर्ता 'सहेजें' आइकन पर क्लिक करता है, लेकिन वास्तव में 'सहेजें' से पहले होता है

जैसा कि पहले बताया गया है, हो सकता है कि आप उपयोगकर्ताओं को उनके परिवर्तनों को मूल कार्यपुस्तिका में सहेजने से रोकना चाहें, और उन्हें कार्यपत्रक पर एक बटन का उपयोग करके एक नया संस्करण बनाने के लिए बाध्य करें। आपको बस इतना करना है कि 'रद्द करें' पैरामीटर को ट्रू में बदलना है, और कार्यपुस्तिका को पारंपरिक विधि द्वारा कभी भी सहेजा नहीं जा सकता है।

123 निजी उप कार्यपुस्तिका_ इससे पहले सहेजें (ByVal SaveAsUI बूलियन के रूप में, बूलियन के रूप में रद्द करें)रद्द करें = सत्यअंत उप

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

आप इस घटना का उपयोग उपयोगकर्ताओं को कार्यपुस्तिका को बंद करने से रोकने के लिए कर सकते हैं, और उन्हें फिर से वर्कशीट बटन के माध्यम से बाहर निकलने के लिए मजबूर कर सकते हैं। दोबारा, आप 'रद्द करें' पैरामीटर को 'सही' पर सेट करते हैं। एक्सेल विंडो के ऊपरी दाएं कोने में लाल एक्स अब और काम नहीं करता है।

123 निजी उप कार्यपुस्तिका_पहले बंद करें (बूलियन के रूप में रद्द करें)रद्द करें = सत्यअंत उप

वर्कशीट इवेंट उदाहरण (संपूर्ण नहीं)

वर्कशीट इवेंट VBE प्रोजेक्ट एक्सप्लोरर में विशिष्ट शीट नाम ऑब्जेक्ट के अंतर्गत पाए जाते हैं। आपको कोड विंडो पर पहली ड्रॉप डाउन पर 'वर्कशीट' का चयन करना होगा और फिर दूसरा ड्रॉप डाउन आपको उपलब्ध सभी घटनाओं को दिखाएगा

वर्कशीट चेंज इवेंट

यह घटना तब शुरू होती है जब कोई उपयोगकर्ता किसी कार्यपत्रक में परिवर्तन करता है, जैसे किसी कक्ष में एक नया मान दर्ज करना

आप इस घटना का उपयोग बदले हुए सेल के बगल में एक अतिरिक्त मूल्य या टिप्पणी करने के लिए कर सकते हैं, लेकिन जैसा कि पहले चर्चा की गई है, आप घटनाओं के एक लूप को सेट करना शुरू नहीं करना चाहते हैं।

12345 निजी उप वर्कशीट_चेंज (ByVal लक्ष्य सीमा के रूप में)यदि लक्ष्य। कॉलम 2 तो उप से बाहर निकलेंActiveSheet.Cells (लक्ष्य। पंक्ति, लक्ष्य। कॉलम + 1)। मूल्य = _ActiveSheet.Cells (लक्ष्य। पंक्ति, लक्ष्य। स्तंभ)। मूल्य * १.१अंत उप

इस उदाहरण में, कोड केवल तभी काम करेगा जब मान कॉलम बी (कॉलम 2) में दर्ज किया गया हो। यदि यह सत्य है तो यह संख्या में 10% जोड़ देगा और इसे अगले उपलब्ध सेल में रख देगा

डबल क्लिक इवेंट से पहले वर्कशीट

यदि कोई उपयोगकर्ता किसी सेल पर डबल क्लिक करता है तो यह ईवेंट कोड को बंद कर देगा। यह वित्तीय रिपोर्टों जैसे कि बैलेंस शीट या लाभ और हानि खाते के लिए बेहद उपयोगी हो सकता है, जहां प्रबंधकों द्वारा संख्याओं को चुनौती देने की संभावना है, खासकर अगर नीचे की रेखा नकारात्मक है!

आप इसका उपयोग ड्रिल-डाउन सुविधा प्रदान करने के लिए कर सकते हैं, ताकि जब प्रबंधक किसी विशेष संख्या को चुनौती दे, तो उन्हें केवल संख्या पर डबल क्लिक करना होगा, और विश्लेषण रिपोर्ट के भाग के रूप में दिखाई देगा।

यह उपयोगकर्ता के दृष्टिकोण से बहुत प्रभावशाली है, और उन्हें लगातार यह पूछने से बचाता है कि 'यह संख्या इतनी अधिक क्यों है?'

आपको संख्या के लिए शीर्षक/मानदंड (लक्ष्य वस्तु गुणों का उपयोग करके) का पता लगाने के लिए कोड लिखना होगा और फिर सारणीबद्ध डेटा को फ़िल्टर करना होगा और फिर इसे रिपोर्ट में कॉपी करना होगा।

वीबीए प्रोग्रामिंग | कोड जेनरेटर आपके लिए काम करता है!

कार्यपत्रक सक्रिय घटना

यह घटना तब होती है जब उपयोगकर्ता एक शीट से दूसरी शीट पर जाता है। यह उस नई शीट पर लागू होता है जिस पर उपयोगकर्ता जा रहा है।

इसका उपयोग यह सुनिश्चित करने के लिए किया जा सकता है कि उपयोगकर्ता द्वारा उस पर कुछ भी करने से पहले नई शीट की पूरी तरह से गणना की जाती है। इसका उपयोग संपूर्ण कार्यपुस्तिका की पुनर्गणना किए बिना केवल उस विशेष शीट की पुनर्गणना करने के लिए भी किया जा सकता है। यदि कार्यपुस्तिका बड़ी है और उसमें जटिल सूत्र है, तो एक शीट की पुन: गणना करने से बहुत समय की बचत होती है

123 निजी उप वर्कशीट_एक्टिवेट ()एक्टिवशीट.गणना करेंअंत उप

सक्रिय एक्स नियंत्रण घटनाएँ (संपूर्ण नहीं)

जैसा कि पहले चर्चा की गई है, आप सक्रिय X नियंत्रणों को सीधे किसी कार्यपत्रक पर जोड़ सकते हैं। ये कमांड बटन, ड्रॉप डाउन और लिस्ट बॉक्स हो सकते हैं

सक्रिय X ईवेंट VBE प्रोजेक्ट एक्सप्लोरर में विशिष्ट शीट नाम ऑब्जेक्ट (जहाँ आपने नियंत्रण जोड़ा है) के अंतर्गत पाए जाते हैं। आपको कोड विंडो पर पहले ड्रॉप डाउन पर सक्रिय एक्स नियंत्रण के नाम का चयन करना होगा और फिर दूसरा ड्रॉप डाउन आपको उपलब्ध सभी घटनाओं को दिखाएगा

कमांड बटन क्लिक इवेंट

जब आप किसी स्प्रेडशीट पर कमांड बटन डालते हैं, तो आप चाहते हैं कि वह कुछ कार्रवाई करे। आप इसे क्लिक इवेंट पर कोड डालकर करते हैं।

आप इस पर आसानी से 'क्या आप सुनिश्चित संदेश हैं?' डाल सकते हैं ताकि आपके कोड के चलने से पहले एक चेक किया जा सके

12345 निजी उप कमांडबटन1_क्लिक करें ()Dim ButtonRet as variantButtonRet = MsgBox ("क्या आप सुनिश्चित हैं कि आप यह करना चाहते हैं?", vbQuestion या vbYesNo)अगर ButtonRet = vbNo तो उप से बाहर निकलेंअंत उप

ड्रॉप डाउन (कॉम्बो बॉक्स) चेंज इवेंट

एक सक्रिय एक्स ड्रॉप डाउन में एक परिवर्तन घटना होती है, ताकि यदि कोई उपयोगकर्ता ड्रॉप-डाउन सूची से किसी विशेष आइटम का चयन करता है, तो आप इस घटना का उपयोग करके उनकी पसंद को कैप्चर कर सकते हैं और फिर शीट या कार्यपुस्तिका के अन्य हिस्सों को तदनुसार अनुकूलित करने के लिए कोड लिख सकते हैं।

123 निजी उप ComboBox1_Change ()MsgBox "आपने चुना" और ComboBox1.Textअंत उप

वीबीए प्रोग्रामिंग | कोड जेनरेटर आपके लिए काम करता है!

टिक बॉक्स (चेक बॉक्स) ईवेंट पर क्लिक करें

उपयोगकर्ता के लिए विकल्प विकल्प प्रदान करने के लिए आप वर्कशीट में एक टिक या चेक बॉक्स जोड़ सकते हैं। आप इस पर क्लिक ईवेंट का उपयोग यह देखने के लिए कर सकते हैं कि उपयोगकर्ता ने इस पर कुछ भी बदला है या नहीं। लौटाए गए मान सही या गलत हैं, इस पर टिक किया गया है या नहीं।

123 निजी उप चेकबॉक्स1_क्लिक करें ()MsgBox CheckBox1.Valueअंत उप

UserForm ईवेंट्स (संपूर्ण नहीं)

एक्सेल आपको अपने स्वयं के फॉर्म डिजाइन करने की क्षमता प्रदान करता है। ये जानकारी एकत्र करने या उपयोगकर्ता को कई विकल्प प्रदान करने के लिए पॉप-अप के रूप में उपयोग करने के लिए बहुत उपयोगी हो सकते हैं। वे सक्रिय एक्स नियंत्रणों का उपयोग करते हैं जैसा कि पहले वर्णित किया गया है और बिल्कुल समान घटनाएँ हैं, हालाँकि घटनाएँ नियंत्रण के प्रकार पर बहुत अधिक निर्भर करती हैं।

यहाँ एक सरल रूप का एक उदाहरण दिया गया है:

जब यह प्रदर्शित होता है तो यह स्क्रीन पर जैसा दिखता है

आप फ़ॉर्म पर ईवेंट का उपयोग फ़ॉर्म को खोलने पर डिफ़ॉल्ट कंपनी नाम दर्ज करने, कंपनी के नाम इनपुट की जांच करने के लिए करेंगे जो पहले से ही स्प्रेडशीट में है और गलत वर्तनी नहीं है, और क्लिक में कोड जोड़ने के लिए 'ओके' और 'रद्द करें' बटन पर ईवेंट

फ़ॉर्म के पीछे के कोड और ईवेंट को फ़ॉर्म पर कहीं भी डबल क्लिक करके देखा जा सकता है

पहला ड्रॉप डाउन फॉर्म पर सभी नियंत्रणों तक पहुंच प्रदान करता है। दूसरा ड्रॉप डाउन ईवेंट तक पहुंच प्रदान करेगा

UserForm सक्रिय घटना

यह घटना तब ट्रिगर होती है जब फॉर्म सक्रिय होता है, सामान्य रूप से जब यह प्रदर्शित होता है। इस घटना का उपयोग डिफ़ॉल्ट मान सेट करने के लिए किया जा सकता है उदा। कंपनी नाम टेक्स्ट बॉक्स में एक डिफ़ॉल्ट कंपनी का नाम

123 निजी उप UserForm_Activate ()TextBox1.Text = "मेरी कंपनी का नाम"अंत उप

वीबीए प्रोग्रामिंग | कोड जेनरेटर आपके लिए काम करता है!

घटना बदलें

प्रपत्र पर अधिकांश नियंत्रणों में एक परिवर्तन ईवेंट होता है, लेकिन इस उदाहरण में, कंपनी का नाम टेक्स्ट बॉक्स दर्ज किए जाने वाले कंपनी के नाम की लंबाई पर प्रतिबंध लगाने के लिए ईवेंट का उपयोग कर सकता है।

123456 निजी उप टेक्स्टबॉक्स1_बदलें ()यदि लेन (पाठ बॉक्स १.पाठ्य) > २० तोMsgBox "नाम 20 वर्णों तक सीमित है", vbcriticalटेक्स्टबॉक्स 1. टेक्स्ट = ""अगर अंतअंत उप

घटना पर क्लिक करें

आप इस ईवेंट का उपयोग फ़ॉर्म पर नियंत्रणों पर क्लिक करने वाले उपयोगकर्ता से कार्रवाई करने के लिए कर सकते हैं, या यहां तक ​​कि स्वयं फ़ॉर्म भी कर सकते हैं

इस फॉर्म पर एक 'ओके' बटन है, और कंपनी का नाम एकत्र करने के बाद, हम इसे भविष्य के संदर्भ के लिए स्प्रेडशीट पर एक सेल में रखना चाहेंगे।

1234 निजी उप कमांडबटन1_क्लिक करें ()एक्टिवशीट। रेंज ("ए 1")। मान = टेक्स्टबॉक्स 1. टेक्स्टमैं.छिपाओअंत उप

यह कोड तब काम करता है जब उपयोगकर्ता 'ओके' बटन पर क्लिक करता है। यह कंपनी के नाम इनपुट बॉक्स में मान को सक्रिय शीट पर सेल A1 में रखता है और फिर फॉर्म को छुपाता है ताकि उपयोगकर्ता नियंत्रण कार्यपत्रक पर वापस आ जाए।

चार्ट घटनाक्रम

चार्ट इवेंट केवल उन चार्ट पर काम करते हैं जो एक अलग चार्ट शीट पर होते हैं, न कि उस चार्ट पर जो एक मानक वर्कशीट में शामिल होता है

चार्ट इवेंट कुछ हद तक सीमित हैं और वर्कशीट पर इसका उपयोग नहीं किया जा सकता है जहां आपके पास कई चार्ट हो सकते हैं। साथ ही, उपयोगकर्ता जरूरी नहीं कि नंबर वाली वर्कशीट से चार्ट शीट पर स्विच करना चाहते हैं - यहां कोई तत्काल दृश्य प्रभाव नहीं है

सबसे उपयोगी घटना एक चार्ट के घटक का पता लगाना होगा जिसे उपयोगकर्ता ने क्लिक किया है उदा। एक पाई चार्ट में एक खंड, या एक बार चार्ट में एक बार, लेकिन यह घटनाओं की मानक श्रेणी पर उपलब्ध घटना नहीं है।

इस समस्या को 'माउस डाउन' ईवेंट जोड़ने के लिए क्लास मॉड्यूल का उपयोग करके हल किया जा सकता है जो उपयोगकर्ता द्वारा क्लिक किए गए चार्ट घटक का विवरण लौटाएगा। इसका उपयोग वर्कशीट के भीतर चार्ट पर किया जाता है।

इसमें कुछ बहुत ही जटिल कोडिंग शामिल है, लेकिन परिणाम शानदार हैं। आप ड्रिल डाउन बना सकते हैं उदा। उपयोगकर्ता एक पाई चार्ट खंड पर क्लिक करता है और तुरंत वह चार्ट छिपा हुआ होता है और उसके स्थान पर एक दूसरा चार्ट दिखाई देता है जो मूल खंड के लिए विवरण का पाई चार्ट दिखाता है, या आप पाई चार्ट के उस खंड का समर्थन करने वाला सारणीबद्ध डेटा तैयार कर सकते हैं।

आवेदन घटनाक्रम

आप किसी विशेष घटना के अनुसार कोड को बंद करने के लिए VBA में एप्लिकेशन ऑब्जेक्ट का उपयोग कर सकते हैं

वीबीए प्रोग्रामिंग | कोड जेनरेटर आपके लिए काम करता है!

आवेदन। समय पर

जब तक कार्यपुस्तिका एक्सेल में लोड की जाती है, तब तक आप नियमित अंतराल पर कोड के एक टुकड़े को बंद करने में सक्षम हो सकते हैं। हो सकता है कि आप अपनी कार्यपुस्तिका को हर 10 मिनट में एक अलग फ़ोल्डर में स्वतः सहेजना चाहें, या कार्यपत्रक को रात भर चालू छोड़ दें ताकि बाहरी स्रोत से नवीनतम डेटा लाया जा सके।

इस उदाहरण में, एक मॉड्यूल में एक सब रूटीन दर्ज किया जाता है। यह हर 5 मिनट में एक संदेश बॉक्स प्रदर्शित करता है, हालांकि यह आसानी से एक और कोडित प्रक्रिया हो सकती है। साथ ही, यह टाइमर को वर्तमान समय और 5 मिनट और रीसेट करता है।

हर बार जब यह चलता है, टाइमर एक और 5 मिनट के समय में उसी सब रूटीन को चलाने के लिए रीसेट हो जाता है।

1234 उप टेस्टऑनटाइम ()MsgBox "समय पर परीक्षण"Application.OnTime (अब () + TimeValue ("00:05:00")), "TestOnTime"अंत उप

आवेदन.ऑनकी

यह फ़ंक्शन आपको अपनी स्वयं की हॉट कुंजियाँ डिज़ाइन करने में सक्षम बनाता है। आप किसी भी कुंजी संयोजन कॉल को अपनी रचना का उप-दिनचर्या बना सकते हैं।

इस उदाहरण में अक्षर 'ए' को रीडायरेक्ट किया गया है ताकि सेल में 'ए' रखने के बजाय, यह एक संदेश बॉक्स प्रदर्शित करेगा। इस कोड को एक सम्मिलित मॉड्यूल में रखा जाना चाहिए।

123456 उप टेस्टकीप्रेस ()Application.OnKey "a", "TestKeyPress"अंत उपउप टेस्टकीप्रेस ()MsgBox "आपने 'ए' दबाया"अंत उप

सबसे पहले आप सब रूटीन 'TestKeyPress' चलाएँ। आपको इसे केवल एक बार चलाने की आवश्यकता है। यह एक्सेल को बताता है कि हर बार 'ए' अक्षर को दबाने पर यह सब रूटीन को 'टेस्टकीप्रेस' कहेगा। सब रूटीन 'टेस्टकीप्रेस' आपको यह बताने के लिए सिर्फ एक संदेश बॉक्स प्रदर्शित करता है कि आपने कुंजी 'ए' दबाया है। यह निश्चित रूप से एक फॉर्म लोड कर सकता है या अन्य सभी प्रकार की चीजें कर सकता है।

आप किसी भी कुंजी संयोजन का उपयोग कर सकते हैं जिसका उपयोग आप 'SendKeys' फ़ंक्शन के साथ कर सकते हैं

इस कार्यक्षमता को रद्द करने के लिए, आप 'प्रक्रिया' पैरामीटर के बिना 'ऑनकी' कथन चलाते हैं।

123 उप रद्दऑनकी ()आवेदन.ऑनकी "ए"अंत उप

अब सब कुछ सामान्य हो गया है।

आप साइट के विकास में मदद मिलेगी, अपने दोस्तों के साथ साझा करने पेज

wave wave wave wave wave