Excel vám umožňuje chránit sešity aplikace Excel před změnami. Tento tutoriál vám ukáže, jak chránit nebo odemknout strukturu sešitu pomocí VBA.
Ochrana sešitu VBA
Ochrana sešitu VBA vám umožňuje uzamknout strukturu sešitu. Když je sešit chráněn, uživatelé nebudou moci přidávat, mazat, skrývat / odkrývat nebo chránit / odemknout listy. Pokud stavíte model, pravděpodobně budete chtít zapnout ochranu sešitu, aby uživatelé (nebo vy!) Nemohli omylem odstranit listy.
Zrušit ochranu sešitu VBA
Chcete -li sešit sejmout, jednoduše použijte následující řádek kódu:
1 | Sešity („Kniha1“). Zrušte ochranu |
Poznámka: tento kód bude fungovat, pouze pokud byl sešit chráněn bez heslo. Pokud bylo heslo chráněno, musíte jej také odemknout zadáním hesla:
Zrušit ochranu sešitu heslem
Tento řádek kódu odemkne sešit, který byl chráněn heslem:
1 | Sešity ("Kniha1"). Odemknout heslo: = "heslo" |
nebo můžete vynechat Heslo: =
1 | Sešity („Kniha1“). Zrušte ochranu „hesla“ |
Zrušit ochranu této pracovní knihy
Tento kód zruší ochranu ThisWorkbook (ThisWorkbook je sešit, kde je uložen spuštěný kód. Nikdy se nezmění).
1 | ThisWorkbook.Unprotect |
nebo zrušte ochranu ThisWorkbook heslem:
1 | ThisWorkbook.Unprotect "heslo" |
Zrušit ochranu ActiveWorkbook
Tento kód zruší ochranu ActiveWorbooku.
1 | ActiveWorkbook.Unprotect |
nebo odemkněte ActiveWorkbook heslem:
1 | ActiveWorkbook.Unprotect "heslo" |
Zrušte ochranu všech otevřených sešitů
Tento kód odstraní všechny otevřené sešity:
12345678 | Sub UnprotectAllOpenWorkbooks ()Dim wb jako sešitPro každý wb v sešitechwb. OdemknoutDalší wbEnd Sub |
Sešit UnProtect - bez znalosti hesla
Pokud potřebujete sešit sejmout bez znalosti hesla, pomůže vám několik doplňků. Doporučil bych Ribbon Commander.
Zrušte ochranu všech listů v sešitu
Po zrušení ochrany sešitu můžete také chtít zrušit ochranu všech listů v sešitu. Zde je postup, který odstraní všechny listy:
12345678 | Sub UnProtectWorkbookAndAllSheets ()Dim ws As WorksheetActiveWorkbook.UnprotectZa každé ws v pracovních listechw. OdemknoutdalšíEnd Sub |
Chránit sešit
Struktury sešitu můžete chránit stejným způsobem, jakým zrušíte ochranu.
Chránit sešit Žádné heslo
Tento řádek kódu bude chránit sešit (žádné heslo)
1 | Sešity („Kniha1“). Chránit |
Poznámka: Často používám ochranu sešitu bez hesel, prostě abych tomu zabránil náhodné změny v sešitech.
Chraňte sešit heslem
Tento kód bude chránit strukturu sešitu (pomocí hesla)
1 | Sešity („Kniha1“). Chraňte „heslo“ |
nebo:
1 | Sešity ("Kniha1"). Chránit heslo: = "heslo" |
Soubor Excel chráněný heslem
Místo ochrany sešitu možná budete chtít celý soubor aplikace Excel chránit heslem. Chcete -li to provést pomocí VBA, uložte jako sešit s heslem:
1 | Sešity („Kniha1“). Uložit jako „heslo“ |
Příklady sešitů Protect / UnProtect
Odkryjte všechny listy v chráněném sešitu
Tento postup zruší ochranu sešitu, skryje všechny listy a sešit znovu ochrání
12345678910 | Sub UnprotectWB_Unhide_All_Sheets ()Dim ws As WorksheetActiveWorkbook.UnprotectZa každé ws v pracovních listechws.Visible = xlSheetVisibledalšíActiveWorkbook.ProtectEnd Sub |
Chraňte sešit a všechny listy
Tento postup ochrání všechny listy v sešitu a poté sešit ochrání:
1234567891011 | Sub ProtectWB_Protect_All_Sheets ()Dim ws As WorksheetActiveWorkbook.UnprotectZa každé ws v pracovních listechws. chránitdalšíActiveWorkbook.ProtectEnd Sub |
Můžete také přidat ochranu heslem:
1234567891011 | Dílčí ochranaWB_Protect_All_Sheets_Pswrd ()Dim ws As WorksheetActiveWorkbook.Unprotect "heslo"Za každé ws v pracovních listechws.Chraňte "heslo"dalšíActiveWorkbook.Protect "heslo"End Sub |