Přejít na hlavní obsah

Jak zabránit editaci buňky v Excelu pomocí VBA

Microsoft Excel, jeden z nejoblíbenějších tabulkových programů, poskytuje mnoho možností pro pohodlné zpracování dat. Jednou z takových možností je použití programovacího jazyka VBA (Visual Basic for Applications), který umožňuje automatizovat různé akce v Excelu. V tomto článku se podíváme na to, jak zabránit úpravám buněk pomocí VBA.

Úprava buněk může být užitečným nástrojem pro změnu dat v tabulce, ale v některých případech může být žádoucí omezit přístup k určitým buňkám, aby se zabránilo neoprávněným úpravám nebo mazání informací. Pokud například vytvoříte šablonu dokumentu nebo sestavy, můžete chtít, aby uživatelé mohli data pouze číst, ale neměnili je.

K zákazu úprav buněk v Excelu pomocí VBA lze použít metodu Protect. Tato metoda umožňuje nastavit ochranu pro celou knihu, pracovní list nebo jednotlivé buňky. Ochrana může zahrnovat různé možnosti, včetně zákazu úprav buněk, formátování, mazání a dalších operací.

Příklad použití metody Protect pro zákaz úpravy buňky je následující:

Sub ProtectCell()

ActiveSheet.Range("A1").Locked = True

ActiveSheet.Protect

End Sub

Vytvoření makra VBA v Excelu

Chcete-li vytvořit makro VBA v Excelu, postupujte podle těchto jednoduchých kroků:

Krok 1: Otevřete soubor Excel, ve kterém chcete vytvořit makro.

Krok 2: Klikněte na kartu Vývojář v horní nabídce. Pokud karta Vývojář není viditelná, musíte ji aktivovat. Chcete-li to provést, poklepejte na soubor Excel s příponou .xlsm.

Krok 3: Na kartě Vývojář vyhledejte skupinu kód a klikněte na tlačítko Makro.

Krok 4: V okně makra, které se zobrazí, klikněte na tlačítko Vytvořit.

Krok 5: Vymyslete název pro své makro a klikněte na tlačítko OK.

Po dokončení těchto kroků otevře Excel editor VBA, kde můžete napsat kód pro vaše makro. Mějte na paměti, že VBA používá syntaxi programovacího jazyka Visual Basic, takže se ji možná budete muset naučit vytvářet složitá makra.

Po napsání kódu pro vaše makro, můžete uložit a zavřít Editor VBA. Vaše makro bude k dispozici jako příkaz na kartě Vývojář. Chcete-li provést makro, jednoduše jej vyberte ze seznamu a klikněte na tlačítko Spustit.

Vytváření makra VBA v Excelu je skvělý způsob, jak automatizovat duplicitní operace a zjednodušit práci s tabulkami.

Otevření Visual Basic Editor

Chcete-li zabránit úpravám buňky v Excelu pomocí VBA, musíte otevřít Visual Basic Editor, abyste napsali příslušné makro. Zde je návod, jak otevřít okno editoru:

Krok 1:Otevřete Excel a spusťte kartu vývoj. Pokud se karta vývoj nezobrazí ve zdroji, postupujte podle následujících pokynů:
Krok 2:Klikněte pravým tlačítkem na panelu nástrojů pásu karet a vyberte "Přizpůsobit pásku. ".
Krok 3:V dialogovém okně " Možnosti práce s páskou "přejděte na kartu" Hlavní karty "a ujistěte se, že je zaškrtnuto políčko" vývoj".
Krok 4:Kliknutím na" OK "zavřete dialogové okno" Možnosti práce s páskou " a vraťte se do Excelu.
Krok 5:Nyní byste měli vidět kartu vývoj v pásu karet Excel.
Krok 6:Klikněte na kartu vývoj a vyhledejte skupinu verze pro vývojáře. V této skupině klikněte na tlačítko"Visual Basic".

Po dokončení těchto kroků se otevře okno Visual Basic Editor, kde můžete pomocí VBA napsat makro, abyste zabránili úpravám buňky v Excelu.

Psaní kódu pro zákaz úpravy buňky

Chcete-li zabránit editaci buňky v Excelu pomocí VBA, musíte použít událost Worksheet_SelectionChange . Tato událost se spustí pokaždé, když uživatel vybere buňku na listu.

  1. Otevřete Visual Basic Editor stisknutím kombinace kláves ALT + F11 .
  2. Vyberte požadovaný list v okně projektu, vlevo od okna kódu.
  3. Poklepáním na vybraný list otevřete okno kódu pro tento list.
  4. Do okna kódu pro list napište následující kód:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)' Запретить редактирование ячейки A1If Target.Address = "$A$1" ThenTarget.Locked = TrueMsgBox "Редактирование этой ячейки запрещено.", vbInformationEnd IfEnd Sub

V tomto příkladu je buňka A1 zakázána pro úpravy. Pokud se uživatel pokusí změnit obsah této buňky, zobrazí se zpráva s informacemi o zákazu.

Chcete-li zabránit úpravám jiných buněk, jednoduše změňte adresu buňky pod podmínkou If Target.Address = "$a$1 " na požadovanou adresu.

Po napsání kódu uložte a zavřete Visual Basic Editor. Při každém výběru buňky na vybraném listu kód zkontroluje adresu vybrané buňky a zakáže její úpravy, pokud Adresa splňuje podmínku.

Aplikace VBA kódu na buňky

Pomocí maker lze konfigurovat různé aspekty práce s buňkami, včetně zákazu úprav, kontroly dat, formátování a dalších.

Chcete-li vytvořit makro, otevřete v Excelu editor Visual Basic Pro aplikace (VBA). Makra jsou uložena v modulech VBA a lze je snadno vyvolat z tabulky.

Příklad kódu VBA pro zákaz úpravy buňky vypadá takto:

Subban (A1), 50.Locked = True Sheets ("List1").Protect End Sub

V tomto příkladu kódu se buňka A1 na listu List1 zablokuje a list List1 je poté chráněn heslem. To znamená, že uživatelé nebudou moci změnit obsah této buňky bez zadání správného hesla.

Kromě toho vám VBA umožňuje konfigurovat další aspekty práce s buňkami, jako je kontrola dat, Automatické vyplňování, kopírování a další. To vše dělá z Excelu pomocí maker VBA výkonný nástroj pro správu dat a automatizaci úloh.

Testování zákazu úprav buňky

Jakmile je napsán a použit kód VBA k zákazu úpravy konkrétní buňky v Excelu,je nutné otestovat její správnost. K tomu lze použít následující sekvenci akcí:

  1. Otevřít soubor aplikace Excel, ve kterém byl kód použit
  2. Přejít na buňku, kterou chcete zkontrolovat
  3. Zkuste provést změny v obsahu buňky, jako je pokus o zadání textu nebo čísla
  4. Ujistěte se, že provedené změny nejsou uloženy a buňka zůstává nezměněna

Pokud provedené změny přetrvávají nebo se při pokusu o úpravu buňky objevují chyby, může to znamenat nesprávnou nebo neúplnou implementaci zákazu úprav. V takovém případě je nutné opakovat kroky k napsání a aplikaci kódu a zkontrolovat jeho dostupnost a správnost v každém přidruženém modulu VBA.

Po úspěšném absolvování testování a přesvědčování o stavu kódu VBA, aby se zabránilo úpravě buňky, si můžete být jisti, že tato funkce bude fungovat správně při dalším používání souboru Excel. Testování pomůže zajistit, že uživatelé nebudou moci náhodně nebo záměrně měnit obsah protektorovaných buněk, což může být zvláště užitečné při spolupráci nebo při používání souboru jako šablony.