एक्सेल शुरू होने पर क्या आपको मैक्रो चलाने की ज़रूरत है? आपके पास दो विकल्प हैं:
1. 'दिसवर्कबुक' के भीतर एक वर्कबुक_ओपन () सबब बनाएं।
2. किसी भी मॉड्यूल में Auto_Open() उप रखें।
वर्कबुक_ओपन इवेंट
'दिसवर्कबुक' के अंतर्गत 'वर्कबुक_ओपन' शीर्षक से एक उपशीर्षक बनाएं
123 | वर्कबुक_ओपन ()MsgBox "यह कोड एक्सेल स्टार्ट पर चलता है!"अंत उप |
ऑटो_ओपन
दूसरी विधि का उपयोग करना: बस Auto_Open नामक एक सबरूटीन बनाएं और उसमें कोड डालें, या वहां से किसी अन्य उप को कॉल करें। एक्सेल शुरू होने पर आपका कोड अपने आप चलता है।
123 | निजी उप Auto_Open ()MsgBox "यह कोड एक्सेल स्टार्ट पर चला!"अंत उप |
हर बार एक्सेल खुलने पर नई वर्कशीट बनाएं और नाम दें
निम्नलिखित कोड कार्यपुस्तिका खोलने का काम करता है। यह स्वचालित रूप से एक नई शीट जोड़ता है और इसे दिनांक के साथ लेबल करता है। यह यह देखने के लिए भी जांच करता है कि शीट पहले से मौजूद नहीं है - इसे दिन में एक से अधिक बार खोले जाने की संभावना की अनुमति देने के लिए।
यह कोड वर्कबुक ओपन इवेंट का उपयोग करता है और इसे "ओपन वर्क बुक" इवेंट के तहत वर्कबुक मॉड्यूल में रखा जाना चाहिए। फ़ंक्शन शीट_एक्सिस्ट को एक मॉड्यूल में रखा जाना चाहिए और यह जांचता है कि शीट मौजूद है या नहीं:
123456789101112131415 | निजी उप कार्यपुस्तिका_ओपन ()मंद New_Sheet_Name स्ट्रिंग के रूप मेंNew_Sheet_Name = फ़ॉर्मेट (अब (), "dd-mm-yy")अगर शीट_एक्सिस्ट्स (न्यू_शीट_नाम) = गलत है तोकार्यपुस्तिका के साथकार्यपत्रक। जोड़ें ()। नाम = New_Sheet_Nameके साथ समाप्त करनाअगर अंतसहेजेंअंत उप |
12345678910111213 | फ़ंक्शन शीट_एक्सिस्ट्स (वर्कशीट_नाम स्ट्रिंग के रूप में) बूलियन के रूप मेंवर्कशीट के रूप में डिम वर्क_शीटशीट_एक्सिस्ट्स = असत्यइस कार्यपुस्तिका में प्रत्येक कार्यपत्रक के लिए। कार्यपत्रकअगर Work_sheet.Name = WorkSheet_Name तोशीट_एक्सिस्ट्स = सत्यअगर अंतअगलाअंत समारोह |
इस ट्यूटोरियल के लिए .XLSM फ़ाइल डाउनलोड करने के लिए, यहाँ क्लिक करें
कार्यपुस्तिका खुलने पर डिफ़ॉल्ट शीट सेट करें
क्या आप यह सुनिश्चित करना चाहते हैं कि कार्यपुस्तिका खुलने पर शीट हमेशा पहले दिखे? उदाहरण के लिए जब आप कोई कार्यपुस्तिका खोलते हैं तो शीट3 हमेशा सक्रिय शीट होती है। ऐसे।
आप VBA की एक शीट को उसके प्रोग्राम नाम (यानी शीट3) या उसके टैब नाम (यानी जनडेटा) से संदर्भित कर सकते हैं। प्रोग्राम नाम का उपयोग करना सबसे अच्छा है, क्योंकि यदि टैब नाम बदलता है, तो आपका VBA कोड जो टैब नाम को संदर्भित करता है वह अब काम नहीं करेगा। हालाँकि यदि आप प्रोग्राम नाम का उपयोग करते हैं तो उपयोगकर्ता टैब नाम को कई बार बदल सकता है और आपका मैक्रो अभी भी काम करता है।
यह सुनिश्चित करने के लिए कि कार्यपुस्तिका खुलने पर एक निश्चित पत्रक हमेशा सक्रिय रहता है, बस कार्यपुस्तिका_ओपन उप में पत्रक.सक्रिय कोड रखें। यह एक उदाहरण है जो किसी कार्यपुस्तिका के खुलने पर हर बार प्रोग्राम नाम का उपयोग करके शीट3 को सक्रिय करता है।
123 | निजी उप कार्यपुस्तिका_ओपन ()पत्रक3.सक्रिय करेंअंत उप |
और यह टैब नाम का उपयोग करके करता है:
1234 | निजी उप कार्यपुस्तिका_ओपन ()पत्रक ("mytabname")। सक्रिय करेंअंत उप |
सिडेनोट: इसके काम करने के लिए आपको एक्सेल को सेव और रीस्टार्ट करना होगा।
सिडेनोट: यह केवल तभी काम करता है जब मैक्रोज़ सक्षम हों।
सिडेनोट: इस कोड को वीबीई में इस वर्कबुक ऑब्जेक्ट के लिए कोड विंडो में रखें।
हर बार वर्कबुक खुलने पर फॉर्म लोड करें
यदि आप एक्सेल वर्कबुक खोलते समय कोई फॉर्म लोड करना चाहते हैं या कुछ वीबीए कोड चलाना चाहते हैं, तो अपना कोड इस वर्कबुक कोड विंडो में और वर्कबुक_ओपन सब में रखें।
आपकी स्प्रैडशीट से:
1. VB संपादक खोलने के लिए ALT और F11 दबाएं
2. कोड विंडो खोलने के लिए ThisWorkbook शब्द पर डबल-क्लिक करें
3. इस वर्कबुक कोड विंडो में निम्न कोड टाइप करें
123 | निजी उप कार्यपुस्तिका_ओपन ()UserForm1.दिखाएँअंत उप |
सिडेनोट: Userform1 को अपने फॉर्म के नाम से बदलें
4. एक्सेल बंद करें और फिर से खोलें।