W kodzie VBA, wszystkie stałe i zmienne zadeklarowane w procedurze wartości stałe i zmienne są widoczne tylko w tej procedurze.
W modułach edytora VBA można jednak zadeklarować także zmienne i stałe publiczne. Wpisane w jednym z modułów, są widoczne w każdym module, w różnych procedurach.
Deklarujemy je zawsze na początku modułu:

W tym przypadku – w module jest zadeklarowana stała o nazwie MojaStala o wartości 5 oraz zmienna typu Single o nazwie MojaZmienna.
MojaStala jest do wykorzystania od razu w każdej z procedur i funkcji, natomiast do zmiennej MojaZmienna trzeba wpierw w dowolnej procedurze przypisać wartość i od tej pory można ją stosować w różnych miejscach kodu VBA, także zmieniając jej wartość.
Czy warto je stosować? Ja często korzystam ze zmiennych publicznych (ze stałych raczej rzadko)
Na przykład:
Option Explicit Public OdczytPlik As Workbook Public OdczytArkusz As Worksheet Public Sub WybierzPlik() |
Tego typu procedury często wykorzystuję w swoich projektach, w których są pobierane dane z innego pliku. Raz przypisane zmienne, wykorzystywane są potem w różnych procedurach czy różnych modułach. Polecam takie rozwiązanie. Pozwala to przede wszystkim na podzielenie całego kodu na mniejsze procedury i/lub funkcje -kod staje się bardziej czytelny i uporządkowany.
Polecam.