Články v kategórii Makrá a VBA:
Zamknutie buniek pomocou VBA | Zabezpečenie hárku pomocou VBA | Zabezpečenie štruktúry zošita pomocou VBA | Zabezpečenie Excel súboru pomocou VBA | Zabezpečenie VBA projektu | Aká je v skutočnosti ochrana v Exceli
V tomto článku si ukážeme, ako môžeme Excel zabezpečiť pomocou makier a VBA. Či už chceme zabezpečiť iba dané bunky alebo celý hárok, môžeme na to použiť aj makrá, resp. VBA. Taktiež pomocou makier môžeme zabezpečiť štruktúru zošita a aj celý Excel súbor. Zabezpečiť sa dá dokonca aj samotný VBA projekt, teda náš kód.
Pre zamknutie bunky nepotrebujeme VBA, môžeme to urobiť jednoducho priamo v hárku, ako ukazujem v článku Zaheslovanie Excelu. VBA je však istejšia metóda. Dá sa to dvoma spôsobmi.
1. Pomocou vlastnosti Cells
Sub zamknutie_bunky_cells() Cells(1, 1).Locked = True End Sub
2. Alebo pomocou vlastnosti Range
Sub zamknutie_bunky_range() Range("A2").Locked = True End Sub
Ak chceme bunky odomknúť, použijeme .Locked = False
Ak chceme naraz uzamknúť viac buniek, použijeme vlastnosť Range, napríklad Range("A1:D80"). Taktiež môžeme použiť kombináciu vlastnosti Cells a príkazu Loop. Príkaz Loop preberám vo video kurze Kurz Makrá a VBA pre MS Excel.
V prípade, že chceme uzamknúť všetky bunky vo všetkých hárkoch v zošite, použijeme:
Sub zamkni_vsetky_bunky() Dim ws As Worksheet For Each ws In ThisWorkbook.Worksheets With ws .Cells.Locked = True End With Next ws End Sub
Ak chceme všetky bunky odomknúť, použijeme .Locked = False
Ak chceme zabezpečiť hárok, použijeme napríklad:
Sub zabezpecenie_harku() ActiveSheet.Protect Password:="heslo" End Sub
Ak chceme zabezpečenie zrušiť, použijeme:
Sub zabezpecenie_harku() ActiveSheet.Unprotect Password:="heslo" End Sub
Pre zabezpečenie všetkých hárkov v zošite použijeme:
Sub zabezpecenie_vsetkých_hárkov() Dim wsheet As Worksheet For Each wsheet In ThisWorkbook.Worksheets wsheet.Protect Password:="password" Next wsheet End Sub
Ak by sme chceli zrušiť zabezpečenie všetkých hárkov, použijeme jednoducho v hore uvedenom kóde v príkaze For wsheet.Unprotect Password:="password"
Aby používateľ nemohol meniť štruktúru zošita, napríklad pridávať alebo odstraňovať hárky, meniť ich poradie alebo názov, atď., použijeme nasledovné makro:
Sub zabezpecenie_struktury() ThisWorkbook.Protect "heslo" End Sub
Podobne môžeme zrušiť zabezpečenie, pomocou:
Sub zrusenie_zabezpecenie_struktury() ThisWorkbook.Unprotect "heslo" End Sub
Pre zabezpečenie Excel súboru pomocou hesla použijeme nasledovný kód:
Sub uloz_s_heslom() ThisWorkbook.SaveAs "heslo" End Sub
Ak zošit ešte nemáte uložený ako “Zošit podporujúci makrá“, teda ako súbor (.xlsm), pri použití tohto kódu sa Vás Excel opýta, či chcete súbor uložiť ako súbor (.xlsm).
Keď súbor zabezpečíme pomocou takéhoto kódu, bude nutné, aby používateľ pre otvorenie Excel zošita použil heslo. Ak ho nevie, nebude môcť Excel súbor otvoriť.
Ak nechceme, aby niekto náš VBA kód, respektíve projekt, mohol bez správneho hesla otvoriť alebo meniť, použijeme zabezpečenie VBA projektu. Vo VBA editore v záložke Tools klikneme na VBAProject Properties...
Následne v záložke Protection buď zaškrtneme Lock project for viewing, ak chceme, aby používateľ nemohol náš VBA projekt vôbec vidieť. Ak mu chceme umožniť projekt čítať ale nie meniť, tak necháme políčko vedľa Lock project for viewing nezaškrtnuté. Zadáme heslo, potvrdíme ho, a klikneme na OK.
Zabezpečenia v Exceli, či už ide o jednoduché zabezpečenie hárku alebo zložitejšie zabezpečenie VBA projektu, sa dajú obísť. Skúsený používateľ s nekalými úmyslami vie Vaše heslá relatívne ľahko dešifrovať. Preto nezabúdajte na to, že zabezpečenie v Exceli nie je 100 percentné.
Ak sa chcete stať zdatní v Exceli, neváhajte si vyskúšať aj náš kompletný video-kurz Kurz Makrá a VBA pre MS Excel.