Zabezpečenie Excelu cez 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.


Zamknutie buniek pomocou VBA

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.


Zamknutie všetkých buniek v zošite

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


Zabezpečenie hárku pomocou VBA

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

Zabezpečenie všetkých hárkov v zošite

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"


Zabezpečenie štruktúry zošita pomocou VBA

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


Zabezpečenie Excel súboru pomocou VBA

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ť.


Zabezpečenie VBA projektu

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

Zabezpečenie Excelu

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čenie Excelu VBA


Aká je v skutočnosti ochrana v Exceli

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.

 
Náš video kurz Excelu v akcii na Zľavomate!

Naučte sa Excel online vďaka môjmu jednoduchému video kurzu!