Arkusz ochrony VBA

Arkusz ochronny Excel VBA

Możemy zabezpieczyć arkusz Excela za pomocą kodu vba, który nie pozwala użytkownikowi na dokonywanie jakichkolwiek zmian w danych arkusza, wszystko, co mogą zrobić, to po prostu przeczytać raport. W tym celu mamy wbudowaną metodę VBA o nazwie „Ochrona”.

Podobnie jak chronimy nasze arkusze w programie Excel, podobnie możemy używać VBA do ochrony naszych arkuszy, odbywa się to za pomocą instrukcji .protect, istnieją dwie metody ochrony arkusza, jedna jest hasłem, a druga bez hasła, składnia do ochrony arkusza roboczego wygląda następująco: Arkusze robocze () .Chroń hasło.

Zwykle udostępniamy ostateczny raport końcowy użytkownikowi lub czytelnikowi. Gdy udostępniamy końcowy raport końcowy użytkownikowi, chcemy, aby użytkownik nie wprowadzał żadnych modyfikacji ani nie manipulował raportem końcowym. W takim scenariuszu chodzi o zaufanie, prawda?

Składnia

Ochrona arkusza obejmuje różne parametry, aby dostarczyć, w przeciwieństwie do ochrony arkusza. Spójrzmy na składnię metody Protect z hasłem.

Łał!!! Nie daj się zastraszyć patrząc na składnię. Spójrz na wyjaśnienie każdego argumentu poniżej.

  • Nazwa arkusza: Najpierw musimy wspomnieć, który arkusz roboczy będziemy chronić.
  • Hasło: musimy wprowadzić hasło, którego używamy do ochrony. Jeśli zignorujemy ten parametr, program Excel zablokuje arkusz bez hasła, a podczas wyłączania ochrony wyłączy ochronę bez pytania o hasło.
  • Uwaga: Zapamiętaj hasło, które podajesz, ponieważ jeśli zapomniałeś, musisz przejść przez różne trudne drogi.
  • Obiekt rysunkowy: Jeśli chcesz chronić obiekty w arkuszu, możesz przekazać argument jako TRUE lub FALSE. Wartość domyślna to TRUE.
  • Zawartość: Aby chronić zawartość arkusza, ustaw parametr na TRUE lub FALSE. Wartość domyślna to FALSE. To ochroni tylko zablokowane komórki. Wartość domyślna to TRUE.
  • Scenariusze: jeśli w scenariuszach programu Excel istnieją jakiekolwiek analizy typu „co, jeśli”, możemy je również chronić. Aby chronić TRUE lub FALSE. Wartość domyślna to TRUE.
  • Tylko interfejs użytkownika: Jeśli chcesz zabezpieczyć interfejs użytkownika inny niż makro, powinno to być PRAWDA. Jeśli ten argument zostanie pominięty, będzie on chronił zarówno makra, jak i interfejs użytkownika. Jeśli ustawisz argument na TRUE, będzie on chronił tylko interfejs użytkownika. Wartość domyślna to FALSE.
  • Zezwalaj na formatowanie komórek: Jeśli chcesz zezwolić użytkownikowi na formatowanie komórki, możesz ustawić parametr na TRUE lub FALSE. Wartość domyślna to FALSE.
  • Zezwalaj na formatowanie kolumn: Jeśli chcesz zezwolić użytkownikowi na formatowanie dowolnej kolumny w chronionym arkuszu, możesz ustawić parametr na TRUE lub FALSE. Wartość domyślna to FALSE.
  • Zezwalaj na formatowanie wierszy: Jeśli chcesz zezwolić użytkownikowi na formatowanie dowolnego wiersza w chronionym arkuszu, możesz ustawić parametr na TRUE lub FALSE. Wartość domyślna to FALSE.
  • Zezwalaj na wstawianie kolumn w VBA: chcesz zezwolić użytkownikowi na wstawianie nowych kolumn, musisz ustawić to na PRAWDA. Wartość domyślna to FALSE.
  • Zezwalaj na wstawianie wierszy: Jeśli chcesz zezwolić użytkownikowi na wstawianie nowych wierszy, musisz ustawić to na TRUE. Wartość domyślna to FALSE.
  • Zezwól na wstawianie hiperłączy: Jeśli chcesz zezwolić użytkownikowi na wstawianie hiperłączy, musisz ustawić to na PRAWDA. Wartość domyślna to FALSE.
  • Zezwalaj na usuwanie kolumn: Jeśli chcesz zezwolić użytkownikowi na usuwanie kolumn w VBA, musisz ustawić to na TRUE. Wartość domyślna to FALSE.
  • Zezwól na usuwanie wierszy: Jeśli chcesz zezwolić użytkownikowi na usuwanie wierszy, musisz ustawić to na PRAWDA. Wartość domyślna to FALSE.
  • Zezwól na sortowanie: Jeśli chcesz zezwolić użytkownikowi na sortowanie danych, musisz ustawić to na TRUE. Wartość domyślna to FALSE.
  • Zezwól na filtrowanie: Jeśli chcesz zezwolić użytkownikowi na filtrowanie danych, musisz ustawić to na TRUE. Wartość domyślna to FALSE.
  • Zezwalaj na używanie tabel przestawnych: Jeśli chcesz zezwolić użytkownikowi na używanie tabel przestawnych, musisz ustawić tę opcję na TRUE. Wartość domyślna to FALSE.

Jak chronić arkusz za pomocą kodu VBA?

Możesz pobrać ten szablon VBA Protect Sheet Excel tutaj - VBA Protect Sheet Excel Template

Krok 1: Wybierz arkusz, który ma być chroniony

Aby zabezpieczyć arkusz, pierwszym krokiem jest podjęcie decyzji, który arkusz musimy zabezpieczyć hasłem i musimy wywołać arkusz po nazwie, używając obiektu vba Worksheet Object.

Na przykład załóżmy, że chcesz chronić arkusz o nazwie „Arkusz wzorcowy”, a następnie musisz podać nazwę arkusza, jak pokazano poniżej.

Krok 2: Zdefiniuj zmienną arkusza roboczego

Po wspominaniu o nazwie arkusza wstaw kropkę, ale nie widzimy żadnej listy IntelliSense do pracy, co utrudnia zadanie. Aby uzyskać dostęp do listy IntelliSense, definiuje zmienną jako arkusz.

Kod:

 Sub Protect_Example1 () Dim Ws As Worksheet End Sub 

Krok 3: Podaj odwołanie do arkusza

Teraz ustaw odwołanie arkusza do zmiennej jako Arkusze („ Arkusz wzorcowy ”) .

Kod:

 Sub Protect_Example1 () Dim Ws As Worksheet Set Ws = Worksheets („Master Sheet”) End Sub 

Teraz zmienna „Ws” zawiera odniesienie do arkusza o nazwie „Arkusz wzorcowy”. Używając tej zmiennej możemy uzyskać dostęp do listy Intellisense.

Krok 4: Wybierz metodę ochrony

Wybierz metodę „Protect” z listy IntelliSense.

Krok 5: Wprowadź hasło

Podaj hasło w cudzysłowach.

Kod:

 Sub Protect_Example1 () Dim Ws As Worksheet Set Ws = Worksheets ("Arkusz główny") W.Protect Password: = "MyPassword" End Sub 

Krok 6: Uruchom kod

Uruchom kod ręcznie lub za pomocą klawisza skrótu F5, a następnie ochroni arkusz o nazwie „Arkusz wzorcowy” .

Gdy arkusz jest chroniony, jeśli chcemy dokonać jakiejkolwiek modyfikacji, wyświetla się komunikat o błędzie, jak pokazano poniżej.

W przypadku, gdy chcesz zabezpieczyć więcej niż jeden arkusz, musimy użyć pętli, poniżej znajduje się przykładowy kod do ochrony arkusza.

 Sub Protect_Example2 () Dim Ws As Worksheet For each Ws in ActiveWorkbook.Worksheets W.Protect Password: = "My Passw0rd" Next Ws End Sub 

Uwaga: użyj innych parametrów do eksperymentowania.