Ochrana sešitu VBA (ochrana heslem / zrušení ochrany)

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
wave wave wave wave wave