वीबीए शीट्स - अंतिम गाइड

एक्सेल में शीट्स / वर्कशीट्स के साथ काम करने के लिए यह अंतिम गाइड है।

इस गाइड के निचले भाग में, हमने शीट के साथ काम करने के लिए सामान्य कमांड की एक चीट शीट बनाई है।

शीट्स बनाम। कार्यपत्रक

VBA का उपयोग करके पत्रक को संदर्भित करने के दो तरीके हैं। पहला पत्रक वस्तु के साथ है:

1 पत्रक ("पत्रक 1")। सक्रिय करें

दूसरा वर्कशीट ऑब्जेक्ट के साथ है:

1 वर्कशीट्स ("शीट 1")। सक्रिय करें

99% बार, ये दो वस्तुएं समान होती हैं। वास्तव में, यदि आपने VBA कोड उदाहरणों के लिए ऑनलाइन खोज की है, तो आपने शायद दोनों वस्तुओं का उपयोग देखा होगा। यहाँ अंतर है:

पत्रक संग्रह में कार्यपत्रक और चार्ट पत्रक शामिल हैं।

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

संदर्भ पत्रक

पत्रक को संदर्भित करने के कई अलग-अलग तरीके हैं:

  • सक्रिय पत्रक
  • शीट टैब का नाम
  • शीट इंडेक्स नंबर
  • शीट कोड नाम

सक्रिय पत्रक

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

1 MsgBox ActiveSheet.Name

शीट का नाम

आप शायद शीट्स को उनके टैब नाम से संदर्भित करने से सबसे अधिक परिचित हैं:

1 पत्रक ("टैबनाम")। सक्रिय करें

शीट इंडेक्स नंबर

शीट इंडेक्स नंबर कार्यपुस्तिका में शीट की स्थिति है। 1 पहली शीट है। 2 दूसरी शीट आदि है:

1 पत्रक(1).सक्रिय करें

शीट इंडेक्स नंबर - वर्कबुक में अंतिम शीट

कार्यपुस्तिका में अंतिम पत्रक को संदर्भित करने के लिए, पत्रक का उपयोग करें। अंतिम सूचकांक संख्या प्राप्त करने के लिए गणना करें:

1 पत्रक (पत्रक। गणना)। सक्रिय करें

शीट "कोड नाम"

वीबीए में शीट कोड नाम इसका ऑब्जेक्ट नाम है:

1 कोडनाम। सक्रिय करें

अन्य कार्यपुस्तिकाओं में संदर्भ पत्रक

अन्य कार्यपुस्तिकाओं में पत्रक का संदर्भ देना भी आसान है। ऐसा करने के लिए, आपको कार्यपुस्तिका ऑब्जेक्ट का उपयोग करने की आवश्यकता है:

1 वर्कबुक ("VBA_Examples.xlsm")। वर्कशीट्स ("शीट 1")। सक्रिय करें

जरूरी: इससे पहले कि आप इसके पत्रक को संदर्भित कर सकें, कार्यपुस्तिका खुली होनी चाहिए।

सक्रिय करें बनाम शीट का चयन करें

एक अन्य लेख में हम शीट को सक्रिय करने और चुनने के बारे में सब कुछ चर्चा करते हैं। संक्षिप्त संस्करण यह है:

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

एक पत्रक सक्रिय करें

1 पत्रक ("पत्रक 1")। सक्रिय करें

जब आप किसी पत्रक का चयन करते हैं, तो वह भी सक्रिय पत्रक बन जाता है। हालाँकि, आप एक साथ कई शीट का चयन कर सकते हैं। जब एक साथ कई शीट्स का चयन किया जाता है, तो "टॉप" शीट एक्टिवशीट होती है। हालाँकि, आप चयनित शीट में ActiveSheet को टॉगल कर सकते हैं।

एक शीट चुनें

1 शीट्स ("शीट 1")। चुनें

एकाधिक पत्रक चुनें

एक साथ कई शीट का चयन करने के लिए एक सरणी का उपयोग करें:

1 वर्कशीट्स (ऐरे ("शीट 2", "शीट 3"))। चुनें

वर्कशीट वैरिएबल

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

वर्कशीट वैरिएबल घोषित करने के लिए:

1 वर्कशीट के रूप में डिम WS

एक वर्कशीट को एक चर के लिए असाइन करें:

1 सेट ws = शीट्स ("शीट 1")

अब आप अपने कोड में वर्कशीट वैरिएबल का संदर्भ दे सकते हैं:

1 ws.सक्रिय करें

वर्कबुक में सभी शीट्स के माध्यम से लूप

जब आप किसी कार्यपुस्तिका में सभी कार्यपत्रकों के माध्यम से लूप करना चाहते हैं तो वर्कशीट चर आवश्यक हैं। ऐसा करने का सबसे आसान तरीका है:

12345 वर्कशीट के रूप में डिम डब्ल्यूएसवर्कशीट में प्रत्येक ws के लिएMsgBox ws.nameअगला ws

यह कोड कार्यपुस्तिका में सभी कार्यपत्रकों के माध्यम से लूप करेगा, प्रत्येक कार्यपत्रक का नाम संदेश बॉक्स में प्रदर्शित करेगा। एक साथ कई वर्कशीट को लॉक/अनलॉक या छुपा/अनहाइड करते समय वर्कबुक में सभी शीट्स के माध्यम से लूप करना बहुत उपयोगी होता है।

वर्कशीट सुरक्षा

कार्यपुस्तिका सुरक्षा

कार्यपुस्तिका सुरक्षा कार्यपुस्तिका को कार्यपत्रकों को जोड़ने, हटाने, स्थानांतरित करने या छिपाने जैसे संरचनात्मक परिवर्तनों से लॉक करती है।

आप VBA का उपयोग करके कार्यपुस्तिका सुरक्षा चालू कर सकते हैं:

1 ActiveWorkbook.Protect पासवर्ड: = "पासवर्ड"

या कार्यपुस्तिका सुरक्षा अक्षम करें:

1 ActiveWorkbook.UnProtect पासवर्ड: = "पासवर्ड"

नोट: आप पासवर्ड तर्क को छोड़ कर बिना पासवर्ड के भी सुरक्षित/असुरक्षित कर सकते हैं:

1 एक्टिव वर्कबुक.प्रोटेक्ट

वर्कशीट सुरक्षा

कार्यपत्रक-स्तरीय सुरक्षा व्यक्तिगत कार्यपत्रकों में परिवर्तनों को रोकती है।

वर्कशीट को सुरक्षित रखें

1 वर्कशीट ("शीट 1")। "पासवर्ड" को सुरक्षित रखें

असुरक्षित वर्कशीट

1 वर्कशीट्स ("शीट 1")। असुरक्षित "पासवर्ड"

वर्कशीट की सुरक्षा करते समय कई विकल्प होते हैं (स्वरूपण परिवर्तनों की अनुमति दें, उपयोगकर्ता को पंक्तियों को सम्मिलित करने की अनुमति दें, आदि) हम आपकी वांछित सेटिंग्स को रिकॉर्ड करने के लिए मैक्रो रिकॉर्डर का उपयोग करने की सलाह देते हैं।

हम यहां वर्कशीट सुरक्षा पर अधिक विस्तार से चर्चा करते हैं।

वर्कशीट दर्शनीय संपत्ति

आप पहले से ही जानते होंगे कि कार्यपत्रकों को छिपाया जा सकता है:

वास्तव में तीन वर्कशीट दृश्यता सेटिंग्स हैं: दृश्यमान, छिपी हुई, और बहुत छिपा हुआ।वर्कशीट टैब क्षेत्र (ऊपर दिखाया गया है) में राइट-क्लिक करके किसी भी नियमित एक्सेल उपयोगकर्ता द्वारा छिपी हुई शीट को छिपाया जा सकता है। वेरीहिडन शीट को केवल वीबीए कोड के साथ या वीबीए संपादक के भीतर से छिपाया जा सकता है। कार्यपत्रकों को छिपाने/खोलने के लिए निम्नलिखित कोड उदाहरणों का उपयोग करें:

वर्कशीट दिखाएँ

1 वर्कशीट ("शीट 1")। दृश्यमान = xlSheetVisible

वर्कशीट छुपाएं

1 वर्कशीट्स ("शीट 1")। दृश्यमान = xlSheetHidden

वर्कशीट बहुत छुपाएं

1 वर्कशीट ("शीट 1")। दृश्यमान = xlSheetVeryHidden

वर्कशीट-स्तर की घटनाएँ

ईवेंट ट्रिगर होते हैं जो "ईवेंट प्रक्रियाएं" चलाने का कारण बन सकते हैं। उदाहरण के लिए, आप हर बार वर्कशीट पर किसी भी सेल को बदलने या वर्कशीट के सक्रिय होने पर कोड चलाने का कारण बन सकते हैं।

वर्कशीट इवेंट प्रक्रियाओं को वर्कशीट मॉड्यूल में रखा जाना चाहिए:

कई वर्कशीट इवेंट हैं। पूरी सूची देखने के लिए, वर्कशीट मॉड्यूल पर जाएं, पहले ड्रॉप-डाउन से "वर्कशीट" चुनें। फिर इसे मॉड्यूल में डालने के लिए दूसरे ड्रॉप-डाउन से एक ईवेंट प्रक्रिया का चयन करना।

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

वर्कशीट सक्रिय ईवेंट हर बार वर्कशीट खोले जाने पर चलते हैं।

123 निजी उप वर्कशीट_एक्टिवेट ()रेंज ("ए 1")। चुनेंअंत उप

यह कोड हर बार कार्यपत्रक खोले जाने पर कक्ष A1 (दृश्य क्षेत्र को कार्यपत्रक के शीर्ष-बाईं ओर रीसेट करना) का चयन करेगा।

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

जब भी कार्यपत्रक पर कोई कक्ष मान बदला जाता है, तो कार्यपत्रक परिवर्तन ईवेंट चलते हैं। अधिक जानकारी के लिए वर्कशीट चेंज इवेंट्स के बारे में हमारा ट्यूटोरियल पढ़ें।

वर्कशीट चीट शीट

नीचे आपको VBA में शीट के साथ काम करने के लिए सामान्य कोड उदाहरणों वाली एक चीट शीट मिलेगी

वीबीए वर्कशीट्स चीटशीट

वीबीए वर्कशीट्स चीटशीट
विवरणकोड उदाहरण
संदर्भ और सक्रिय पत्रक
टैब का नामपत्रक ("इनपुट")। सक्रिय करें
वीबीए कोड नामपत्रक 1. सक्रिय करें
सूचकांक स्थितिपत्रक(1).सक्रिय करें
शीट का चयन करें
शीट का चयन करेंपत्रक ("इनपुट")। चुनें
चर पर सेट करेंवर्कशीट के रूप में डिम डब्ल्यूएस
सेट ws = एक्टिवशीट
नाम / नाम बदलेंActiveSheet.Name = "नया नाम"
अगली शीटएक्टिवशीट.अगला.सक्रिय करें
सभी शीट्स के माध्यम से लूपवर्कशीट के रूप में डिम डब्ल्यूएस
वर्कशीट में प्रत्येक ws के लिए
संदेशबॉक्स ws.name
अगला ws
चयनित पत्रक के माध्यम से लूपवर्कशीट के रूप में डिम WS
ActiveWindow.SelectedSheets में प्रत्येक ws के लिए
MsgBox ws.Name
अगला ws
एक्टिवशीट प्राप्त करेंMsgBox ActiveSheet.Name
शीट जोड़ेंपत्रक।जोड़ें
शीट और नाम जोड़ेंपत्रक.जोड़ें.नाम = "नई पत्रक"
सेल से नाम के साथ शीट जोड़ेंपत्रक। जोड़ें। नाम = श्रेणी ("a3")। मान
एक के बाद एक शीट जोड़ेंपत्रक। बाद में जोड़ें: = पत्रक ("इनपुट")
शीट के बाद और नाम जोड़ेंपत्रक। जोड़ें (बाद: = पत्रक ("इनपुट"))। नाम = "न्यूशीट"
पहले शीट जोड़ें और नामशीट्स। जोड़ें (पहले: = शीट्स ("इनपुट"))। नाम = "न्यूशीट"
कार्यपुस्तिका के अंत में पत्रक जोड़ेंपत्रक। बाद में जोड़ें: = पत्रक (पत्रक। गणना)
कार्यपुस्तिका की शुरुआत में शीट जोड़ेंशीट्स। जोड़ें (पहले: = शीट्स (1))। नाम = "फर्स्टशीट"
वेरिएबल में शीट जोड़ेंवर्कशीट के रूप में डिम WS
ws सेट करें = पत्रक। जोड़ें
वर्कशीट कॉपी करें
कार्यपुस्तिका के अंत में पत्रक ले जाएँशीट्स ("शीट 1")। इसके बाद ले जाएं: = शीट्स (शीट्स। गणना)
नई कार्यपुस्तिका के लिएशीट्स ("शीट 1")। कॉपी करें
नई कार्यपुस्तिका के लिए चयनित पत्रकActiveWindow.SelectedSheets.Copy
एक और शीट से पहलेशीट्स ("शीट 1")। पहले कॉपी करें: = शीट्स ("शीट 2")
पहली शीट से पहलेशीट्स ("शीट 1")। पहले कॉपी करें: = शीट्स(1)
अंतिम शीट के बादशीट्स ("शीट 1")। इसके बाद कॉपी करें: = शीट्स (शीट्स। गणना)
कॉपी और नामशीट्स ("शीट 1")। इसके बाद कॉपी करें: = शीट्स (शीट्स। गणना)
ActiveSheet.Name = "लास्टशीट"
सेल वैल्यू से कॉपी और नामशीट्स ("शीट 1")। इसके बाद कॉपी करें: = शीट्स (शीट्स। गणना)
ActiveSheet.Name = रेंज ("A1")। मान
एक और कार्यपुस्तिका के लिएशीट्स ("शीट 1")। पहले कॉपी करें: = वर्कबुक ("उदाहरण। xlsm")। शीट्स (1)
पत्रक छुपाएं/दिखाएं
शीट छुपाएंशीट्स ("शीट 1")। दृश्यमान = गलत
या
शीट्स ("शीट 1")। दृश्यमान = xlSheetHidden
शीट दिखाएँपत्रक ("पत्रक 1")। दृश्यमान = सत्य
या
शीट्स ("शीट 1")। दृश्यमान = xlSheetVisible
बहुत छुपाएं पत्रकशीट्स ("शीट 1")। दृश्यमान = xlSheetVeryHidden
पत्रक हटाएं या साफ़ करें
शीट हटाएंपत्रक ("पत्रक 1")। हटाएं
शीट हटाएं (त्रुटि प्रबंधन)त्रुटि पर फिर से शुरू करें अगला
पत्रक ("पत्रक 1")। हटाएं
त्रुटि गोटो 0 . पर
शीट हटाएं (कोई संकेत नहीं)एप्लिकेशन। डिस्प्ले अलर्ट = गलत
पत्रक ("पत्रक 1")। हटाएं
एप्लिकेशन.डिस्प्लेअलर्ट्स = ट्रू
साफ़ शीटशीट्स ("शीट 1")। सेल। साफ़ करें
केवल शीट सामग्री साफ़ करेंपत्रक ("पत्रक 1")। कक्ष। साफ़ सामग्री
साफ़ शीट प्रयुक्त रेंजशीट्स ("शीट 1")। यूज्ड रेंज। क्लियर
शीट्स को सुरक्षित या असुरक्षित करें
असुरक्षित (कोई पासवर्ड नहीं)शीट्स ("शीट 1")। असुरक्षित
असुरक्षित (पासवर्ड)पत्रक ("शीट 1")। असुरक्षित "पासवर्ड"
सुरक्षित रखें (कोई पासवर्ड नहीं)शीट्स ("शीट 1")। प्रोटेक्ट
सुरक्षित रखें (पासवर्ड)शीट्स ("शीट 1")। "पासवर्ड" को सुरक्षित रखें
सुरक्षित रखें लेकिन वीबीए एक्सेस की अनुमति देंपत्रक ("पत्रक 1")। केवल उपयोगकर्ता इंटरफ़ेस को सुरक्षित रखें: = सत्य
सभी शीट्स को असुरक्षित करेंवर्कशीट के रूप में डिम WS
वर्कशीट में प्रत्येक ws के लिए
ws.असुरक्षित "पासवर्ड"
अगला ws
wave wave wave wave wave