Opcje modułu VBA

Na początku każdego modułu w edytorze VBA zawsze pierwsze linijki kodu związane są z jego opcjami. Standardowo pierwsza linia to:

    • Option Compare
      opcja porównania ciągów

        • Option Compare Binary
          cyfrowe porównanie znaków tekstowych, gdzie:
          np. “A” < “a” , “12” > “112”
        • Option Compare Text
          tekstowe porównanie znaków tekstowych, gdzie:
          np. “A” = “a”
        • Option Compare Database
          (opcja domyślna)

          porównanie znaków tekstowych uzależnione od strony kodowej i ustawień regionalnych komputera. Najczęściej jest to zgodne z właściwościami Option Compare Text, czyli
          np. “A” = “a”
    • Option Explicit
      opcja wymuszająca deklarację zmiennych w funkcjach i procedurach zapisanych w module czyli każda ze zmiennych musi być zapisana w bloku np.
      Dim Zmienna1 as Integer
      Dim Zmienna2 as Date
      Domyślnie nie jest wpisana do modułu, ale warto dopisać tę linijką. W ten sposób jeżeli gdzieś w kodzie pojawi się literówka – od razy wyskoczy to przy kompilacji kodu, gdyż niezadeklarowana zmienna nie zostanie zaakceptowana.
      Opcję tę można włączyć na stałe jako domyślne ustawienie modułu, zaznaczając checkbox w edytorze VBA Tool–> Options…
    • Option Private Module
      ukrywanie funkcji i procedur zapisanych w module.
      Po wpisaniu tej linijki na początku modułu zapisane w nim publiczne funkcje/procedury są widziane w innych modułach kodu, ale nie są dostępne z poziomu Excela, nie można ich uruchomić jako Makro na karcie Developer. Funkcje publiczne nie są widoczne w funkcjach zdefiniowanych przez użytkownika i nie można ich użyć w komórkach arkusza.

 

Kurs Programowanie VBA w Excelu dla zaawansowanych

Ukrycie kodu VBA

Jak zabezpieczyć kod VBA w pliku Excela?  Jest taka możliwość w edytorze VBA. Wystarczy kliknąć prawym przyciskiem myszy projekt VBA i z menu podręcznego wybrać właściwości projektu VBA:

Otworzy się w ten sposób formularz, w którym przechodzimy do zakładki Protection.

Checkbox Lock Project for viewing jest domyślnie odhaczony. Po jego zaznaczeniu wpisujemy i potwierdzamy hasło odbezpieczające kod. Potem wystarczy tylko zapisać skoroszyt i już. Po kolejnym otwarciu pliku dostęp do kodu VBA będzie już zablokowany. Chcąc wejść do kodu konieczne będzie wykonanie operacji odwrotnej tzn. wejście do edytora i kliknięcie prawym przyciskiem myszy. Pojawi się formularz z pytaniem o hasło. Po wpisaniu – kod będzie dostępny.
Zabezpieczenie kodu będzie aktywne tak długo, dopóki nie zostanie odhaczony checkox zabezpieczający kod.

Przy okazji, nieco rozszerzając temat zabezpieczenia kodu, warto też wspomnieć o możliwości częściowego kodu z poziomu arkusza. Przy bardziej złożonych projektach, wykorzystujących większą ilość procedur zapisanych w modułach ogólnych, wszystkie o charakterze publicznym są widoczne w oknie makr czy funkcji użytkownika.

Najczęściej większość z nich nie jest tu potrzebna, stanowią tylko podprocedury wywoływane kodem z innych procedur. W takich przypadkach warto ustawić opcję prywatności dla całych modułów.  Wystarczy na górze modułu wpisać Option Private Module.

Wszystkie zapisane w tym module procedury będą niewidoczne w oknie makr/funkcji użytkownika, a jednocześnie będą dostępne z poziomu wszystkich innych modułów skoroszytu.

 


 

Kurs Excel - makra i VBA dla początkujących