Ochranný list Excel VBA

Ochrana listu je důležitým úkolem pro ty, kteří pracují v aplikaci Microsoft Excel velmi často. Je to úkol, který potřebujete chránit před úpravou jiným uživatelem. Předpokládejme, že posíláte zprávu managementu a poté management vědomě nebo omylem změní parametry nebo hodnoty prostřednictvím zprávy. Je hektické identifikovat chybu a současně je přepracování něco, co spotřebovává váš čas. Za účelem překonání tohoto problému je vždy dobré chránit listy před úpravami pomocí hesla. Tato možnost vám pomůže tím, že neumožňuje uživateli provádět žádné změny v listech. Heslo můžete také sdílet s osobou, která je zamýšlena a oprávněna provádět změny. Přestože Excel má možnost Protect Worksheet v ní prostřednictvím karty Review na pásu karet Excel, stane se hektické, pokud máte více než jeden list na ochranu. To zabere dostatek času na ochranu každého listu jeden po druhém. Místo toho je vhodné napsat kód VBA, který může chránit jeden nebo více listů z vašeho sešitu před úpravou.

Syntaxe ochranného listu VBA

Tato vestavěná funkce VBA spojená s pracovním listem vám umožňuje chránit list pomocí hesla. Syntaxe funkce VBA Protect Sheet je následující:

Všechny parametry jsou v této funkci volitelné, které můžete uhodnout přes hranaté závorky uvedené pro každý z nich.

  • Heslo: Určuje heslo pro list. Pokud není uveden, bude list chráněn bez hesla a uživatel jej může upravit, aniž by byl požádán o heslo.
  • DrawingObjects: Volitelné argumenty, které umožňují chránit různé tvary listu. Vezme booleovské hodnoty. Ve výchozím nastavení je FALSE.
  • Obsah: Nepovinný argument. Chrání všechny objekty. Ve výchozím nastavení je hodnota TRUE.
  • Scénáře: Chrání všechny různé scénáře. Výchozí hodnota je nastavena na PRAVDA.
  • UserInterfaceOnly: Chrání uživatelské rozhraní, ale ne makra. Výchozí hodnota je PRAVDA, pokud je makro ignorováno a uživatelské rozhraní bude chráněno.
  • AllowFormattingCells: Výchozí hodnota je nastavena na FALSE, díky které uživatel nemůže formátovat buňky listu. Pokud je nastavena PRAVDA, uživatel může formátovat buňky z listu.
  • AllowInsertingColumns: Výchozí hodnota nastavena na FALSE. Pokud je nastavena PRAVDA, může uživatel vložit sloupec do listu.
  • AllowInsertingRows: Výchozí hodnota je nastavena na FALSE. Pokud je nastavena PRAVDA, může uživatel vložit řádky do listu.
  • AllowInsertingHyperlinks: Výchozí hodnota je nastavena na FALSE. Pokud je nastavena PRAVDA, uživatel může do listu vložit hypertextové odkazy.
  • AllowDeletingColumns: Výchozí hodnota je nastavena na FALSE. Pokud je nastavena PRAVDA, může uživatel vymazat jakýkoli sloupec z listu.
  • AllowDeletingRows: Výchozí hodnota je nastavena na FALSE. Pokud je nastavena PRAVDA, uživatel může z listu odstranit libovolný počet řádků.
  • AllowSorting: Výchozí hodnota je nastavena na FALSE. Pokud je nastavena PRAVDA, uživatel může třídit data přítomná v listu.
  • AllowFiltering: Výchozí hodnota je nastavena na FALSE. Pokud je nastavena PRAVDA, uživatel může filtrovat data přítomná v listu.
  • AllowUsingPivotTables: Výchozí hodnota je nastavena na FALSE. Pokud je nastavena PRAVDA, uživatel může používat a upravovat kontingenční tabulky.

Jak chránit list v Excelu VBA?

Níže jsou uvedeny různé příklady ochrany listu v Excelu pomocí VBA Protect.

Tuto šablonu VBA Protect Sheet Excel si můžete stáhnout zde - VBA Protect Sheet Excel Template

Ochranný list VBA - Příklad č. 1

Předpokládejme, že máme list nazvaný „Příklad 1“ v sešitu s názvem „VBA Protect Sheet“. Chceme, aby byl tento list chráněn heslem. Postupujte podle následujících kroků:

Krok 1: Vložte nový modul do editoru jazyka (VBE). Klikněte na Vložit > vyberte Modul .

Krok 2: Definujte nový dílčí postup v rámci modulu.

Kód:

 Sub Příklad_1 () Konec Sub 

Krok 3: Nyní musíme použít funkci Protect, kterou lze použít na objekt nazvaný Worksheet. Spusťte kód pomocí objektu Listy a zadejte název listu do závorek, které chcete chránit.

Kód:

 Sub Příklad_1 () Pracovní listy („Příklad 1“) Konec Sub 

Krok 4: Nyní vložte za závěrečné závorky tečku a použijte klíčové slovo Chránit, které iniciuje proces ochrany listu s názvem „ Příklad 1 “.

Kód:

 Sub Příklad_1 () Pracovní listy („Příklad 1“). Chránit konec Sub 

Zde můžete zastavit a chránit list. Protože jsou všechny argumenty volitelné, bude váš list stále chráněn, ale před úpravou nebude vyžadovat, aby uživatel zadal heslo, a bude stejný jako nechráněný list. Určitě byste to tak nechtěli. Proto v dalším kroku přidejte silné heslo pro ochranu tohoto listu.

Krok 5: Zadejte klíčové slovo Password a použijte silné heslo k ochraně tohoto listu.

Kód:

 Sub Příklad_1 () Pracovní listy („Příklad 1“). Chránit heslo: = „ “ “End Sub 

Použijeme pouze první argument funkce, která se nazývá heslo, a pro zbytek všechny argumenty půjdeme s výchozími hodnotami.

Krok 6: Toto je, můžete spustit tento kód stisknutím klávesy F5 nebo Spustit a uvidíte, že soubor je nyní chráněn a požádá uživatele o heslo, jakmile se pokusí upravit některou z buněk.

Takto chráníme list pomocí funkce VBA Protect.

Ochranný list VBA - Příklad č. 2

Nyní chceme chránit všechny listy obsažené v sešitu. Postupujte podle následujících kroků:

Krok 1: Definujte dílčí postup v modulu.

Kód:

 Sub Příklad_2 () Konec Sub 

Krok 2: Definujte novou proměnnou jako list pomocí Dim.

Kód:

 Sub Příklad_2 () Dim wrk_sht jako list na konci Sub 

Krok 3: Spusťte smyčku For. Tato smyčka by měla běžet až do posledního listu aktivního sešitu.

Kód:

 Sub Příklad_2 () Dim wrk_sht jako list pro každý wrk_sht v ActiveWorkbook.Worksheet End Sub 

Tento řádek kódu vybere každý list aktivního sešitu a uloží jej pod proměnnou wrk_sht pro každou iteraci smyčky. Smyčka končí, jakmile je vybrán poslední list sešitu a uložen do proměnné wrk_sht. Musíme pro tuto smyčku definovat operaci. Určitě bude chránit list pomocí hesla.

Krok 4: Nyní použijte funkci Protect k ochraně listů uložených pod proměnnou wrk_sht pro každou iteraci smyčky For.

Kód:

 Příklad Příklad_2 () Dim wrk_sht jako list pro každý wrk_sht v ActiveWorkbook.Worksheets wrk_sht.Protect Password: = " " End Sub 

Krok 5: Použijte příkaz Next a umožňuje spuštění smyčky, dokud nebude každý list chráněn.

Kód:

 Dílčí příklad_2 () Dim wrk_sht jako pracovní list pro každý wrk_sht v ActiveWorkbook.Worksheets wrk_sht.Protect Password: = " sent " Next End Sub 

Pokud spustíte tento kód, bude každý list aktivního sešitu chráněn heslem a musíte jej zadat pokaždé, když chcete listy upravit.

Co si pamatovat

  • Při ochraně listu doporučujeme používat heslo. V opačném případě nebude uživatel vyzván k zadání hesla a může soubor přímo upravit, přestože jste jej chránili.
  • Doporučuje se zapamatovat si heslo. V opačném případě nikdy nebudete moci soubor upravit. Pravděpodobně budete muset projít různými metodami, pokud ztratíte heslo a tyto metody jsou mimo rozsah tohoto článku.

Doporučené články

Toto je průvodce ochranným listem VBA. Zde diskutujeme o tom, jak chránit nebo uzamknout listy pomocí funkce VBA Protect v Excelu, spolu s praktickými příklady a stahovatelnou šablonou Excel. Můžete si také prohlédnout naše další doporučené články -

  1. Jak přejmenovat list v Excelu VBA?
  2. Kroky k odemknutí listu v Excelu
  3. VBA Activate Sheet (Příklady se šablonou Excel)
  4. Jak zkopírovat list Excelu?

Kategorie: