Często spotykamy się z sytuacją, gdy chcemy zabezpieczyć całą zawartość pliku lub jej część przed dostępem niepożądanych osób. Ochrona arkusza i skoroszytu w Excelu to tylko podstawy zabezpieczeń. Excel jak mało który program pozwala na zastosowanie kilku poziomów ochrony zawartości. To z jednej strony pozwala dobrze zabezpieczyć cenne informacje, z drugiej strony jest to system bardzo elastyczny, dzięki któremu możemy decydować, na jaki poziom dostępu pozwolimy poszczególnym użytkownikom. Oczywiście znajdziemy wielu krytyków zabezpieczeń w Excelu, twierdzących, że łatwo zbudować makro, które prędzej czy później złamie hasło, ale przeciw temu argumentowi stają takie argumenty:
– to jak szybko można złamać hasło zależy przede wszystkim od jej siły. Im hasło dłuższe i bardziej skomplikowane (tj. losowa mieszanka dużych i małych liter, cyfr i znaków specjalnych) tym trudniej takie hasło złamać. Hasła w Excelu możemy ustawiać do 255 znaków, a to pozwala na ustawienie wystarczająco silnego hasła.
– Excel to nie program, którego głównym zadaniem jest bezpieczeństwo danych, dlatego nie można go porównywać np. do zabezpieczeń bankowych. Nie ma opcji wysyłania maili czy smsów z przypomnieniem hasła w przypadku kilku nieudany prób, przez co też nie musimy się martwić, że tracąc telefon ktoś może uzyskać dostęp do danych.
– na ogół w Excelu nie trzymamy danych krytycznych jak np. hasła do kont internetowych i bankowych, pinów itp.
Ochrona arkusza i jego zawartości
Budując jakiś raport czy zestawienie często korzystamy ze słowników czy parametrów koniecznych do poprawnego działania przeliczeń, które umieszczone są w tym samym arkuszu. Udostępniając taki raport użytkownikom chcemy uniknąć sytuacji, gdy ktoś zgłasza, że „plik nie działa”, a powodem problemów okazuje się sam użytkownik, który przypadkiem usunął lub nadpisał część słownika lub parametrów. Aby ustrzec się przed taką sytuacją warto zrobić dwie rzeczy:
– ukryć wiersze/kolumny, które zawierają słowniki i parametry. Z jednej strony dla bezpieczeństwa, z drugiej jest to bardzo dobre zachowanie ze strony analityka, ponieważ powinien on mieć na uwadze, że odbiorca raportu powinien widzieć tylko to co go faktycznie interesuje. Elementy techniczne raportu, które nic nie wnoszą dla użytkownika nie powinny być mu pokazywane. Odciąga to tylko uwagę od kluczowych rzeczy, wprowadza dodatkowy obszar do przeanalizowania co to jest i czemu służy czy jest warte uwagi.
– zabezpieczyć obszar arkusza, który nie powinien być dostępny dla użytkownika raportu. Standardowo wszystkie komórki w arkuszu mają zaznaczą opcję zablokuj widoczną w opcjach formatowania komórek. Dlatego w zasadzie musimy odblokować część raportu, którą ma edytować użytkownik, a pozostała część zostanie zablokowana przy ochronie arkusza.

Ochronę arkusza ustawiamy w bardzo prosty sposób, na karcie Recenzja klikamy w przycisk „Chroń arkusz”, po czym możemy ustawić hasło oraz to na co pozwalamy użytkownikowi w działaniach na komórkach zablokowanych. Hasło nie jest obowiązkowe, ale wtedy użytkownik może zdjąć ochronę zwykłym kliknięciem. Zawsze przed ustawieniem zabezpieczeń warto przejrzeć listę dozwolonych użytkownikowi działań. Np. jeśli w pliku stosujemy grupowanie wierszy lub kolumn należy pozwolić na Formatowanie kolumn i wierszy, w przeciwnym razie grupowanie i rozgrupowanie w naszym raporcie przestanie działać, co zapewne bardzo ograniczy funkcjonalność raportu.

Dodatkowa ochrona formuł
Czasami zależy też nam na ukryciu formuł, które stosujemy w obliczeniach. Nie chcemy, aby poznany został wzór na wyliczenie danej wartości lub jest to nasza cenna skomplikowana formuła, którą nie chcemy się dzielić. Wtedy możemy skorzystać z opcji „Ukryj”, przez co formuła nie będzie wyświetlana użytkownikowi na pasku formuł.

Powyższe działanie ma niestety dużą wadę. Jeżeli mamy ukryte komórki z danymi, a arkusz zabezpieczony to nic nie stoi na przeszkodzie, aby móc te komórki zaznaczyć, skopiować i wkleić w niechronione miejsce lub się do nich odwołać. Zawartość jest też widoczna w VBA, gdy zapytamy o wartość komórki z pierwszego wiersza i drugiej kolumny otrzymamy wartość „Miesiące”. Mimo to, jeśli zależy nam tylko na ukryciu i zabezpieczeniu elementów technicznych raportu ochrona arkusza jest wystarczająca.


Ukrycie arkusza na poziomie VBA – arkusz całkowicie niewidoczny w skoroszycie
O ukrywaniu arkuszy wie prawie każdy użytkownik Excela. Natomiast bardzo niewiele osób wie, że tak naprawdę są trzy stany w jakim określona jest widoczność arkusza. Poza stanem „visible – odkryty” i „ hidden – ukryty”, jest jeszcze jeden „very hidden – bardzo ukryty”. Opcja ta jest widoczna tylko na poziomie VBA i pozwala na całkowite ukrycie arkusza przed widokiem z poziomu skoroszytu.
Żeby silnie ukryć arkusz musimy wejść do edytora VBA, najlepiej za pomocą skrótu Alt+F11 albo zwyczajnie przez kartę Deweloper. Następnie należy zaznaczyć arkusz jaki chcemy ukryć i przejść do okna właściwości – properties. W polu Visible musimy wybrać opcję 2-xlSheetVeryHidden.

Dzięki temu arkusz nie wyświetli się na liście arkuszy ukrytych. Osoba, która nie będzie bardzo wnikliwie grzebać w pliku nawet nie będzie wiedziała o jego istnieniu. Do arkusza nadal możemy stosować odwołania i formuły, więc nie wpływa to na naszą pracę. W taki sposób możemy ukrywać arkusze, których nie powinni widzieć inni użytkownicy Excela.

Ochrona skoroszytu
W poprzednim przykładzie lepszym rozwiązaniem byłoby umieszczenie danych do ukrycia w arkuszu, który ukryjemy, a następnie zabezpieczymy strukturę skoroszytu. Robimy to w podobny sposób jak w przypadku arkuszy, czyli karta Recenzja, przycisk Chroń skoroszyt i ustawiamy hasło.

Po tym działaniu odpada możliwość zaznaczenia i skopiowania zawartości. Natomiast nadal pozostaje problem z możliwością odwoływania się do tej zawartości zarówno w arkuszach jak i w VBA.


Chroniąc strukturę pliku zabezpieczamy się przed działaniami takimi jak usunięcie, dodanie, zmiana nazwy, przeniesienie, skopiowanie arkusza.
Ochrona na poziomie pliku
Omówiona została ochrona arkusza i skoroszytu w Excelu, kolejnym poziomem zabezpieczeń jest zabezpieczenie całego pliku. Mamy tu możliwość zastosowania podwójnego zabezpieczenia. Klikając przycisk „Zapisz jako” a następne „Opcje ogólne…” mamy możliwość ustawienia dwóch haseł.


Pierwsze hasło będzie wymagane do samego otwarcia pliku. Drugie hasło chroni przed nieupoważnionym wprowadzaniem jakichkolwiek zmian w naszym pliku. Są sytuacje w których zastosowanie tych mechanizmów jest bardzo przydatne. Na przykład nasz plik jest udostępniony na firmowym dysku sieciowym. Do tej lokalizacji dostęp mają trzy grupy osób:
- osoby mogące pracować na tym pliku, zmieniać jego zawartość
- czytelnicy, którzy mogą tylko przeglądać plik
- osoby, które ni powinny mieć dostępu do tego pliku
Aby jednym działaniem dostosować się do potrzeb każdej grupy ustawiamy oba hasła i odpowiednio je komunikujemy. Pierwsza grupa zna oba hasła, druga tylko to do otwarcia pliku do odczytu, trzeciej nie podajemy haseł. W ten sposób nie musimy kombinować z różnymi wersjami plików. Opcja „Zawsze z kopią zapasową” tworzy nam kopię zapasową pliku przy jego zapisywaniu. Opcja „Zalecane tylko do odczytu” powoduje, że przy otwieraniu pojawia się dodatkowe poniższe okienko.

Dostęp dla wybranych osób
Klikając na karcie „Plik” i przechodząc do zakładki „Informacje” możemy dodatkowo określić komu pozwolimy na edycję lub tylko odczyt pliku. To rozwiązanie dedykowane jest głównie do zarządzania dostępami wewnątrz organizacji.


Zabezpieczenie z poziomu VBA
Ciekawym sposobem na ograniczenie dostępu jest weryfikacja osoby otwierającej plik używając wewnętrznego makra uruchamianego automatycznie przy otwieraniu pliku. Makro takie sprawdza nazwę użytkownika i weryfikuje czy ta nazwa pasuje do naszego warunku. Jeżeli jest to inna nazwa użytkownika to wtedy makro ma jedno zadanie, zamknąć plik bez zapisywania zmian. Przykładowy kod poniżej.
Sub Dostep()
If Application.UserName <> „Sławomir Wótka” Then
ActiveWorkbook.Close savechenges:=False
End If
End Sub
W praktyce wygląda to tak, że niewłaściwy użytkownik widzi tylko mignięcie otwarcia pliku i nic więcej. Wadą takiego rozwiązania jest to, że plik musi być zapisany w formacie obsługującym makra. Druga wada jest taka, że łatwo można to zabezpieczenie obejść uruchamiając plik w trybie chronionym lub w ustawieniach Excela zatrzymać uruchamianie makr. Mimo to dla wielu osób może to być skuteczna przeszkoda, a można też wykorzystać ten mechanizm do zrobienia komuś excelowego żartu.
Zabezpieczenie dodatkowym programem
Ochrona arkusza i skoroszytu w Excelu oraz zahasłowanie całego pliku czasami może być niewystarczające gdy pracujemy z danymi wrażliwymi. Wysyłając plik z bardzo ważnymi danymi chcemy ustrzec się również sytuacji, gdy przez pomyłkę taki plik zostanie wysłany lub przesłany nie do tej osoby co powinien. Jeśli uważamy, że zastosowane zabezpieczenia mimo wszystko mogą być zbyt słabe, to można taki plik skompresować używając na przykład programu 7z lub WinRar i przy kompresji zastosować silne hasło. Jest to działanie bardzo szybkie i proste, a dodatkowo podniesie poziom zabezpieczeń. Taki zestaw zabezpieczeń myślę, że każdemu pozwoli spać spokojnie i da pewność, że cenne informacje są widoczne tylko dla tych, dla których chcemy, aby były widoczne.
Podsumowanie
Ochrona arkusza i skoroszytu w Excelu to wygodne narzędzia pozwalające ukrywać zawartość lub chronić ją przed niechcianymi zmianami. Zabezpieczenia na poziomie VBA czy określanie dostępów do plików to kolejne metody zarzadzania zawartością. Jak to zwykle bywa elastyczność Excela pozwala na dostosowanie go do naszych potrzeb co jest ogromną zaletą. Kolejne metody określania dostępów do plików przychodzą z nowościami pakietu Office 365, lecz wewnętrzne zabezpieczenia nie zmianiają się od lat. Dlatego zarówno użytkownik na podstawowym poziomie jak i zaawansowany znajdzie metody, które najlepiej będą pasowały do jego potrzeb.