Někdy je potřeba poslat svůj excelový sešit do světa s chráněnými konkrétními listy. Pokud zjistíte, že před distribucí sešitů neustále chráníte a odstraňujete ochranu listů, zde uvedené makro vám může pomoci.
Jak makro funguje
Kód je spuštěn událostí BeforeClose v sešitu. Při pokusu o zavření sešitu se tato událost spustí a spustí kód uvnitř. Makro automaticky ochrání zadaný list daným heslem a poté sešit uloží:
Private Sub Workbook_BeforeClose (Zrušit jako Boolean)
'Krok 1: Chraňte list heslem
Sheets("Sheet1").Protect Password:="RED"
'Krok 2: Uložte sešit
Aktivní sešit.Uložit
End Sub
V kroku 1 explicitně určujete, který list se má chránit – v tomto případě List1. Zadáte také argument hesla, Password:=”RED”, který definuje heslo potřebné k odstranění ochrany.
Tento argument hesla je volitelný. Pokud jej vynecháte, list bude stále chráněn, ale k jeho zrušení nebudete potřebovat heslo.
V heslech aplikace Excel se rozlišují velká a malá písmena, takže budete chtít věnovat pozornost přesnému heslu a velikosti písmen, které používáte.
Krok 2 říká Excelu, aby sešit uložil. Pokud sešit neuložíte, ochrana listu, kterou jste právě použili, nebude při příštím otevření sešitu účinná.
Jak používat makro
Chcete-li implementovat toto makro, musíte jej zkopírovat a vložit do okna kódu události Workbook_BeforeClose. Umístěním makra sem umožníte jeho spuštění pokaždé, když se pokusíte zavřít sešit:
Aktivujte Editor jazyka Visual Basic stisknutím Alt+F11.
V okně projektu vyhledejte název projektu/sešitu a kliknutím na znaménko plus vedle něj zobrazte všechny listy.
Klepněte na ThisWorkbook.
V rozevíracím seznamu Událost vyberte událost BeforeClose.
Zadejte nebo vložte kód do nově vytvořeného modulu, změňte název listu (v případě potřeby) a heslo.
Zadejte svůj kód do události Workbook BeforeClose.
Všimněte si, že můžete chránit další listy přidáním příkazů přidání před příkaz Activeworkbook.Save.