Ochrona skoroszytu VBA (ochrona hasłem / ochrona)

Excel umożliwia ochronę skoroszytów programu Excel przed zmianami. Ten samouczek pokaże Ci, jak chronić lub usuwać ochronę struktury skoroszytu za pomocą VBA.

Ochrona skoroszytu VBA

VBA Workbook Protection umożliwia zablokowanie struktury skoroszytu. Gdy skoroszyt jest chroniony, użytkownicy nie będą mogli dodawać, usuwać, ukrywać / odkrywać ani chronić / wyłączać ochrony arkuszy. Jeśli budujesz model, prawdopodobnie chcesz włączyć ochronę skoroszytu, aby uniemożliwić użytkownikom (lub Tobie!) przypadkowe usunięcie arkuszy.

Usuń ochronę skoroszytu VBA

Aby usunąć ochronę skoroszytu, po prostu użyj następującego wiersza kodu:

1 Skoroszyty("Książka1").Unprotect

Uwaga: ten kod będzie działał tylko wtedy, gdy skoroszyt był chroniony z pominięciem hasło. Jeśli był chroniony hasłem, musisz również wpisać hasło, aby go odbezpieczyć:

Odblokuj skoroszyt hasłem

Ten wiersz kodu spowoduje usunięcie ochrony skoroszytu, który był chroniony hasłem:

1 Skoroszyty("Książka1").Unprotect Password:="hasło"

lub możesz pominąć Hasło:=

1 Skoroszyty("Książka1").Odbezpiecz "hasło"

Odblokuj ten skoroszyt

Ten kod wyłączy ochronę ThisWorkbook (ThisWorkbook to skoroszyt, w którym przechowywany jest działający kod. Nigdy się nie zmieni).

1 ThisWorkbook.Unprotect

lub usuń zabezpieczenie ThisWorkbook hasłem:

1 ThisWorkbook.Unprotect „hasło”

Odblokuj ActiveWorkbook

Ten kod nie chroni ActiveWorbook.

1 ActiveWorkbook.Unprotect

lub odbezpiecz ActiveWorkbook hasłem:

1 ActiveWorkbook.Odbezpiecz „hasło”

Odblokuj wszystkie otwarte skoroszyty

Ten kod wyłączy ochronę wszystkich otwartych skoroszytów:

12345678 Sub UnprotectAllOpenWorkbooks()Dim wb jako skoroszytDla każdego wb w skoroszytachwb.UnprotectNastępny wbNapis końcowy

Odblokuj skoroszyt - bez znajomości hasła

Jeśli chcesz usunąć ochronę skoroszytu bez znajomości hasła, możesz skorzystać z kilku dodatków. Polecam wstążkę Commander.

Odblokuj wszystkie arkusze w skoroszycie

Po wyłączeniu ochrony skoroszytu możesz również chcieć usunąć ochronę wszystkich arkuszy w skoroszycie. Oto procedura, która wyłączy ochronę wszystkich arkuszy:

12345678 Sub UnProtectWorkbookAndAllSheets()Dim ws As WorksheetActiveWorkbook.UnprotectDla każdego ws w arkuszach roboczychws.UnprotectNastępnyNapis końcowy

Chroń skoroszyt

Struktury skoroszytu można chronić w taki sam sposób, jak wyłącza się ochronę.

Chroń skoroszyt bez hasła

Ten wiersz kodu ochroni skoroszyt (bez hasła)

1 Skoroszyty("Książka1").Chroń

Uwaga: często stosuję ochronę skoroszytu bez haseł, aby zapobiec przypadkowy zmiany w skoroszytach.

Chroń skoroszyt hasłem

Ten kod będzie chronić strukturę skoroszytu (za pomocą hasła)

1 Skoroszyty("Książka1").Chroń "hasło"

lub:

1 Skoroszyty("Książka1").Chroń hasło:="hasło"

Ochrona hasłem pliku Excel

Zamiast ochrony skoroszytu możesz chcieć zabezpieczyć hasłem cały plik programu Excel. Aby to zrobić za pomocą VBA, Zapisz jako skoroszyt z hasłem:

1 Skoroszyty("Książka1").SaveAs "hasło"

Chroń / Odblokuj Przykłady skoroszytów

Odkryj wszystkie arkusze robocze w chronionym skoroszycie

Ta procedura usunie ochronę skoroszytu, ukryje wszystkie arkusze i ponownie zabezpieczy skoroszyt

12345678910 Sub UnprotectWB_Unhide_All_Sheets()Dim ws As WorksheetActiveWorkbook.UnprotectDla każdego ws w arkuszach roboczychws.Visible = xlSheetVisibleNastępnyActiveWorkbook.ProtectNapis końcowy

Chroń skoroszyt i wszystkie arkusze

Ta procedura chroni wszystkie arkusze w skoroszycie, a następnie chroni skoroszyt:

1234567891011 Sub ProtectWB_Protect_All_Sheets()Dim ws As WorksheetActiveWorkbook.UnprotectDla każdego ws w arkuszach roboczychws.ProtectNastępnyActiveWorkbook.ProtectNapis końcowy

Możesz również dodać ochronę hasłem:

1234567891011 Sub ProtectWB_Protect_All_Sheets_Pswrd()Dim ws As WorksheetActiveWorkbook.Odbezpiecz „hasło”Dla każdego ws w arkuszach roboczychws.Protect „hasło”NastępnyActiveWorkbook.Protect „hasło”Napis końcowy
wave wave wave wave wave