Arkusz ochronny Excel VBA

Ochrona arkusza roboczego jest ważnym zadaniem dla osób, które często pracują w programie Microsoft Excel. Jest to zadanie, którego potrzebujesz, aby chronić arkusz przed edycją przez innego użytkownika. Załóżmy, że wysyłasz raport do kierownictwa, a następnie kierownictwo świadomie lub przez pomyłkę zmienia parametry lub wartości w raporcie. Identyfikacja błędu staje się gorączkowa, a jednocześnie przeróbka pochłania Twój czas. Aby rozwiązać ten problem, zawsze dobrą praktyką jest ochrona arkusza / arkuszy przed edycją przy użyciu hasła. Ta opcja pomaga, nie pozwalając użytkownikowi na dokonywanie jakichkolwiek zmian w arkuszu / arkuszach. Możesz także udostępnić hasło osobie, która jest przeznaczona, a także upoważniona do wprowadzania zmian. Chociaż program Excel ma w sobie opcję Chroń arkusz roboczy za pomocą karty Recenzja na wstążce Excel, staje się gorączkowy, gdy masz więcej niż jeden arkusz do ochrony. Zużyje dużo czasu, chroniąc każdy arkusz jeden po drugim. Zamiast tego dobrą praktyką jest pisanie kodu VBA, który może chronić pojedynczy lub wiele arkuszy przed skoroszytem przed edycją.

Składnia arkusza ochronnego VBA

Ta wbudowana funkcja VBA powiązana z arkuszem roboczym umożliwia ochronę arkusza za pomocą hasła. Składnia funkcji VBA Protect Sheet jest następująca:

Wszystkie parametry są opcjonalne w tej funkcji, którą można odgadnąć w kwadratowych nawiasach wymienionych dla każdego z nich.

  • Hasło: określa hasło do arkusza. Jeśli nie zostanie podany, arkusz będzie chroniony bez hasła, a użytkownik może go edytować bez pytania o hasło.
  • DrawingObjects: Opcjonalne argumenty, które pozwalają chronić różne kształty arkusza. Przyjmuje wartości logiczne. Domyślnie ustawiony jest na FAŁSZ.
  • Treść: Argument opcjonalny. Chroni wszystkie przedmioty. Domyślnie wartości są ustawione na PRAWDA.
  • Scenariusze: Chroni wszystkie różne scenariusze. Wartość domyślna jest ustawiona na PRAWDA.
  • UserInterfaceOnly: Chroni interfejs użytkownika, ale nie makra. Domyślną wartością jest PRAWDA, jeśli makro zostanie zignorowane, a interfejs użytkownika będzie chroniony.
  • AllowFormattingCells: Wartość domyślna jest ustawiona na FAŁSZ, ponieważ użytkownik nie może sformatować komórek arkusza. Jeśli ustawiono PRAWDA, użytkownik może sformatować komórki z arkusza.
  • AllowInsertingColumns: Wartość domyślna ustawiona na FAŁSZ. Jeśli ustawiono PRAWDA, użytkownik może wstawić kolumnę do arkusza.
  • AllowInsertingRows: Domyślna wartość to FALSE. Jeśli ustawiono PRAWDA, użytkownik może wstawiać wiersze do arkusza.
  • AllowInsertingHyperlinks: Domyślną wartością jest FALSE. Jeśli ustawiono PRAWDA, użytkownik może wstawiać hiperłącza w arkuszu.
  • AllowDeletingColumns: Domyślna wartość to FALSE. Jeśli ustawiono PRAWDA, użytkownik może usunąć dowolną kolumnę z arkusza.
  • AllowDeletingRows: Domyślna wartość to FALSE. Jeśli ustawiono PRAWDA, użytkownik może usunąć dowolną liczbę wierszy z arkusza.
  • AllowSorting: Domyślna wartość to FALSE. Jeśli ustawiono PRAWDA, użytkownik może sortować dane obecne w arkuszu.
  • AllowFiltering: Domyślna wartość to FALSE. Jeśli ustawiono PRAWDA, użytkownik może filtrować dane obecne w arkuszu.
  • AllowUsingPivotTables: Domyślna wartość to FALSE. Jeśli ustawiono PRAWDA, użytkownik może używać i modyfikować tabele przestawne.

Jak chronić arkusz w programie Excel VBA?

Poniżej znajdują się różne przykłady ochrony arkusza w programie Excel za pomocą VBA Protect.

Możesz pobrać ten szablon Excel Arkusz ochronny VBA tutaj - Szablon Excel Arkusz ochronny VBA

Arkusz ochronny VBA - przykład nr 1

Załóżmy, że mamy arkusz o nazwie „Przykład 1” w skoroszycie o nazwie „Arkusz ochrony VBA”. Chcemy, aby ten arkusz był chroniony hasłem. W tym celu wykonaj następujące kroki:

Krok 1: Wstaw nowy moduł do Visual Basic Editor (VBE). Kliknij Wstaw > wybierz Moduł .

Krok 2: Zdefiniuj nową podprocedurę w module.

Kod:

 Sub Przykład_1 () End Sub 

Krok 3: Teraz musimy użyć funkcji Protect, którą można zastosować do obiektu o nazwie Arkusz roboczy. Uruchom kod z obiektem Arkusze i wpisz nazwę arkusza w nawiasach, które chcesz chronić.

Kod:

 Sub Przykład_1 () Arkusze robocze („Przykład 1”) Zakończ Sub 

Krok 4: Teraz umieść kropkę za nawiasami zamykającymi i użyj słowa kluczowego Protect, które inicjuje proces ochrony arkusza o nazwie „ Przykład 1 ”.

Kod:

 Sub Przykład_1 () Arkusze robocze („Przykład 1”). Chroń End Sub 

Możesz zatrzymać się tutaj, chroniąc arkusz. Ponieważ wszystkie argumenty są opcjonalne, twój arkusz nadal będzie chroniony, ale nie poprosi użytkownika o podanie hasła przed edycją i będzie taki sam jak arkusz niechroniony. Na pewno nie chciałbyś tego w ten sposób. Dlatego dodaj silne hasło, aby chronić ten arkusz w następnym kroku.

Krok 5: Wpisz słowo kluczowe Hasło i użyj silnego hasła, aby chronić ten arkusz.

Kod:

 Sub Przykład_1 () Arkusze robocze („Przykład 1”). Zabezpiecz hasło: = „ ” Zakończ Sub 

Użyjemy tylko pierwszego argumentu funkcji, który jest wywoływany jako Hasło, a do końca wszystkich argumentów użyjemy wartości domyślnych.

Krok 6: To jest to, możesz uruchomić ten kod, naciskając klawisz F5 lub Run i widzisz, że plik jest teraz chroniony i zapyta użytkownika o hasło, gdy tylko spróbuje edytować dowolną komórkę.

W ten sposób chronimy arkusz za pomocą funkcji VBA Protect.

Arkusz ochronny VBA - przykład nr 2

Teraz chcemy chronić wszystkie arkusze znajdujące się w skoroszycie. W tym celu wykonaj następujące kroki:

Krok 1: Zdefiniuj podprocedurę w module.

Kod:

 Sub Przykład_2 () End Sub 

Krok 2: Zdefiniuj nową zmienną jako arkusz roboczy za pomocą Dim.

Kod:

 Sub Przykład_2 () Dim wrk_sht As Arkusz End Sub 

Krok 3: Uruchom pętlę For. Ta pętla powinna działać do ostatniego arkusza aktywnego skoroszytu.

Kod:

 Sub Przykład_2 () Dim wrk_sht jako arkusz roboczy dla każdego wrk_sht w ActiveWorkbook.Worksheets End Sub 

Ten wiersz kodu wybiera każdy arkusz aktywnego skoroszytu i przechowuje go pod zmienną wrk_sht dla każdej iteracji pętli. Pętla kończy się, gdy tylko ostatni arkusz skoroszytu zostanie wybrany i zapisany w zmiennej wrk_sht. Musimy zdefiniować operację dla tej pętli. Z pewnością będzie chronić arkusz za pomocą hasła.

Krok 4: Teraz użyj funkcji Protect, aby zabezpieczyć arkusze przechowywane w zmiennej wrk_sht dla każdej iteracji pętli For.

Kod:

 Sub Przykład_2 () Dim wrk_sht Jako arkusz roboczy dla każdego wrk_sht W ActiveWorkbook.Worksheets wrk_sht.Protect Hasło: = " " End Sub 

Krok 5: Użyj instrukcji Next, pozwala ona uruchomić pętlę do momentu zabezpieczenia każdego arkusza roboczego.

Kod:

 Sub Przykład_2 () Dim wrk_sht Jako arkusz roboczy dla każdego wrk_sht W ActiveWorkbook.Worksheets wrk_sht.Protect Hasło: = " " Następny koniec Sub 

Jeśli uruchomisz ten kod, każdy arkusz aktywnego skoroszytu będzie chroniony hasłem i musisz go wprowadzać za każdym razem, gdy chcesz edytować arkusze.

Rzeczy do zapamiętania

  • Zaleca się stosowanie hasła podczas ochrony arkusza. W przeciwnym razie użytkownik nie zostanie poproszony o podanie hasła i może bezpośrednio edytować plik, mimo że go chroniłeś.
  • Zaleca się zapamiętanie hasła. W przeciwnym razie zapomnienie tego samego nigdy nie pozwoli ci edytować pliku. Być może będziesz musiał przejść przez różne metody, jeśli stracisz hasło, a metody te wykraczają poza zakres tego artykułu.

Polecane artykuły

To jest przewodnik po arkuszu ochronnym VBA. Tutaj omawiamy, jak chronić lub blokować arkusze za pomocą funkcji VBA Protect w programie Excel, wraz z praktycznymi przykładami i szablonem Excel do pobrania. Możesz także przejrzeć nasze inne sugerowane artykuły -

  1. Jak zmienić nazwę arkusza w programie Excel VBA?
  2. Kroki, aby odblokować arkusz w programie Excel
  3. Arkusz aktywacji VBA (przykłady z szablonem Excel)
  4. Jak skopiować arkusz Excela?

Kategoria: