VBA प्रोटेक्ट / अनप्रोटेक्ट वर्कशीट

यह ट्यूटोरियल आपको VBA में एक्सेल वर्कशीट प्रोटेक्शन के बारे में सब कुछ सिखाएगा - एक्सेल में वर्कशीट को कैसे प्रोटेक्ट या अनप्रोटेक्ट करें।

पासवर्ड के बिना एक्सेल वर्कशीट को असुरक्षित करें

ऐसी वर्कशीट को असुरक्षित करने के लिए जो पासवर्ड से सुरक्षित नहीं है, कोड की इस सरल लाइन का उपयोग करें:

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

पासवर्ड के साथ एक्सेल वर्कशीट को असुरक्षित करें

पासवर्ड से सुरक्षित वर्कशीट को असुरक्षित करने के लिए, आपको पासवर्ड भी दर्ज करना होगा:

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

असुरक्षित शीट - पासवर्ड खो गया

पासवर्ड जाने बिना वर्कशीट को असुरक्षित करने के लिए, आपको पासवर्ड रिकवरी ऐड-इन का उपयोग करना होगा।

कार्यपत्रकों को सुरक्षित रखें

वर्कशीट प्रोटेक्शन आपको शीट के कुछ पहलुओं को संपादन से लॉक करने की अनुमति देता है।

यह मेनू में पाया जाता है होम > प्रारूप > शीट को सुरक्षित रखें या शीट टैब नाम पर राइट-क्लिक करके:

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

आप सेल को चुनकर और खोलकर उन्हें लॉक कर सकते हैं सुरक्षा टैब का सेल फ़ॉर्मेटिंग मेनू (CTRL + 1).

आप उपयोगकर्ता को वर्कशीट संरचना (पंक्तियों और स्तंभों को सम्मिलित करना, हटाना, या उनका आकार बदलना), या ऑटोफिल्टर के साथ बातचीत करने से, और बहुत कुछ बदलने से रोक सकते हैं।

वर्कशीट को सुरक्षित रखें - पासवर्ड के बिना

आप पासवर्ड दर्ज किए बिना वर्कशीट की सुरक्षा करना चाह सकते हैं। यह उपयोगकर्ता को वांछित होने पर परिवर्तन करने की पहुंच प्रदान करते हुए, कार्यपत्रक में आकस्मिक परिवर्तनों को रोकेगा।

1 वर्कशीट्स ("शीट 1")। प्रोटेक्ट

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

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

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

उपरोक्त उदाहरण मानक सुरक्षा सेटिंग्स के साथ वर्कशीट की सुरक्षा करेंगे। इसके बजाय आप जो सुरक्षित है उसे अनुकूलित करना चाहेंगे:

12345 वर्कशीट्स ("शीट 1")। पासवर्ड को सुरक्षित रखें: = strPassword, DrawingObjects: = ट्रू, कंटेंट: = ट्रू, परिदृश्य: = ट्रू, _UserInterfaceOnly:=True, AllowFormattingCells:=False, AllowFormattingColumns:=False, _AllowFormattingRows:=False, AllowInsertingColumns:=False, AllowInsertingRows:=False, _अनुमति देंहाइपरलिंक्स:=गलत, अनुमति देंडिलीटिंगकॉलम:=गलत, अनुमति देंडिलीटिंगरो:=गलत, _छँटाई की अनुमति दें:=गलत,अनुमति फ़िल्टरिंग:=गलत,अनुमति देंपिवटटेबल्स:=गलत

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

शीट को सुरक्षित रखें - VBA को परिवर्तन करने दें

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

123456789 उप संपादन_पत्रक1 ()'असुरक्षित शीट1'वर्कशीट्स ("शीट 1")। असुरक्षित'शीट 1 के लिए कुछ करें''रिप्रोटेक्ट शीट1'वर्कशीट्स ("शीट 1")। प्रोटेक्टअंत उप

हालांकि, अपने वर्कशीट को असुरक्षित और/या फिर से सुरक्षित करना भूलना आसान है। यह एक कोडिंग त्रुटि की संभावना को बढ़ा सकता है।

इसके बजाय, आप UserInterFaceOnly सेटिंग का उपयोग कर सकते हैं। जब TRUE, वर्कशीट केवल उपयोगकर्ताओं से सुरक्षित होगी, VBA से नहीं।आपका वीबीए कोड वर्कशीट को वैसे ही संपादित करने के लिए स्वतंत्र होगा जैसे कि इसे अनलॉक किया गया था।

UserInterFaceOnly के बारे में दो महत्वपूर्ण बातें:

  • यह सेटिंग वर्कशीट प्रोटेक्शन मेनू (ऊपर दिखाया गया है) से उपलब्ध नहीं है। यह एक सेटिंग है जिसे वीबीए में परिभाषित किया जाना चाहिए।
  • जब आप किसी कार्यपुस्तिका को बंद करते हैं तो सेटिंग सहेजी नहीं जाती है। हर बार कार्यपुस्तिका खोले जाने पर इसे फिर से परिभाषित किया जाना चाहिए।

तो UserInterFaceOnly प्रॉपर्टी सेट करने के लिए, आपको इस वर्कबुक मॉड्यूल में निम्नलिखित वर्कबुक_ओपन इवेंट प्रक्रिया रखनी चाहिए:

1234567 निजी उप कार्यपुस्तिका_ओपन ()वर्कशीट के रूप में डिम WSइस कार्यपुस्तिका में प्रत्येक ws के लिए। कार्यपत्रकws.Protect UserInterfaceOnly:=Trueअगला wsअंत उप

Workbook_Open एक विशेष घटना प्रक्रिया है जो हर बार कार्यपुस्तिका के खुलने पर चलेगी। इसे ThisWorkbook मॉड्यूल में अवश्य रखा जाना चाहिए। वैकल्पिक रूप से, आप Auto_Open ईवेंट प्रक्रिया का उपयोग कर सकते हैं (यहां कवर नहीं किया गया है)।

सभी पत्रक मैक्रो को असुरक्षित करें

यह मैक्रो किसी कार्यपुस्तिका में सभी पत्रक को असुरक्षित कर देगा:

123456789 'सभी वर्कशीट्स को अनप्रोटेक्ट करें'सब अनप्रोटेक्ट ऑलशीट्स ()वर्कशीट के रूप में डिम WSवर्कशीट में प्रत्येक ws के लिएws.असुरक्षित "पासवर्ड"अगला wsअंत उप

सभी शीट मैक्रो को सुरक्षित रखें

यह मैक्रो किसी कार्यपुस्तिका में सभी पत्रक की सुरक्षा करेगा:

123456789 'सभी कार्यपत्रकों को सुरक्षित रखेंसब प्रोटेक्ट ऑलशीट्स ()वर्कशीट के रूप में डिम WSवर्कशीट में प्रत्येक ws के लिएws. "पासवर्ड" सुरक्षित रखेंअगला wsअंत उप

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

wave wave wave wave wave