2012-08-16 20 views
8

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

मैं वर्तमान में वर्कशीट को असुरक्षित करता हूं, कार्यों को निष्पादित करता हूं और फिर वर्कशीट की रक्षा करता हूं।

समस्या यह है कि संरक्षित शीट पासवर्ड किसी भी उत्सुक आंखों को देखने के लिए मैक्रो में सादा पाठ में है।

मैं कैसे शीट पर एक पासवर्ड बचाने के लिए हो सकता है, लेकिन एक ही समय में, अनुमति देने के अपने स्प्रेडशीट असुरक्षित करने के लिए, जबकि वह अपने कार्य करता है, और फिर इसे reprotect, मैक्रो में प्लेन पासवर्ड लिखे बिना मैक्रो?

उत्तर

13

दो विकल्प:

  1. पासवर्ड VBA की रक्षा करना। (जबकि वीबीए सुरक्षा दुर्भावनापूर्ण मंशा के खिलाफ सुरक्षित है, यह शीट सुरक्षा की सुरक्षा से भी बदतर नहीं है)
  2. यदि आप वीबीए का उपयोग करके वर्कशीट सुरक्षा सेट करते हैं तो आप UserInterfaceOnly:=True निर्दिष्ट कर सकते हैं।

    sh.Protect Password:="Password", UserInterfaceOnly:=True

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

+3

+ 1 मैं टेक्स्ट पासवर्ड से भी बचता हूं। ऐसा नहीं है कि यह एक बहुत अंतर बनाता है। कोई कुछ अद्वितीय पासवर्ड जेनरेटर का उपयोग कर सकता है। यहां एक बहुत ही बुनियादी उदाहरण है 'ActiveSheet.Protect Application.WorksheetFunction.Pi' और कभी-कभी मैं एक यादृच्छिक पासवर्ड जेनरेटर का उपयोग करता हूं जो केवल वीबीए कोड असुरक्षित हो सकता है। –

+0

+1, मुझे एहसास नहीं हुआ कि # 2 एक विकल्प था - वह स्वयं इसका उपयोग करेगा। – enderland

1

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

Sub PasswordBreaker() 
    'Breaks worksheet password protection. 
    Dim i As Integer, j As Integer, k As Integer 
    Dim l As Integer, m As Integer, n As Integer 
    Dim i1 As Integer, i2 As Integer, i3 As Integer 
    Dim i4 As Integer, i5 As Integer, i6 As Integer 
    On Error Resume Next 
    For i = 65 To 66: For j = 65 To 66: For k = 65 To 66 
    For l = 65 To 66: For m = 65 To 66: For i1 = 65 To 66 
    For i2 = 65 To 66: For i3 = 65 To 66: For i4 = 65 To 66 
    For i5 = 65 To 66: For i6 = 65 To 66: For n = 32 To 126 
    ActiveSheet.Unprotect Chr(i) & Chr(j) & Chr(k) & _ 
     Chr(l) & Chr(m) & Chr(i1) & Chr(i2) & Chr(i3) & _ 
     Chr(i4) & Chr(i5) & Chr(i6) & Chr(n) 
    If ActiveSheet.ProtectContents = False Then 
     MsgBox "One usable password is " & Chr(i) & Chr(j) & _ 
      Chr(k) & Chr(l) & Chr(m) & Chr(i1) & Chr(i2) & _ 
      Chr(i3) & Chr(i4) & Chr(i5) & Chr(i6) & Chr(n) 
     Exit Sub 
    End If 
    Next: Next: Next: Next: Next: Next 
    Next: Next: Next: Next: Next: Next 
End Sub 
+4

प्रश्न के लिए प्रासंगिक नहीं है। – brettdj

0

आप पासवर्ड संकेत को संभालने के लिए एक UserForm फोन है, लेकिन एक पाठ बॉक्स संपत्ति के रूप में PasswordChar का उपयोग करके पात्रों मुखौटा कर सकते हैं।

enter image description here