DeklarowanieOpcja Wyraźna u góry modułu kodu mówi VBA, aby wymagał zadeklarowania wszystkich zmiennych, których używasz w kodzie. Jeśli to polecenie zostanie pominięte, możesz użyć zmiennych, których nie zadeklarowałeś. Zalecamy użycie Option Explicit w górnej części modułu, ponieważ pomaga to uniknąć błędnego wpisywania zmiennych.
Używanie zmiennych VBA bez opcji jawnej
Najpierw pokażemy przykład kodu, gdy nie ma polecenia Option Explicit. Oto kod:
123456789 | Private Sub ExampleWOOptionExplicit()Dim strTextA As StringstrTextA = "Testowanie VBA bez jawnej opcji"MsgBox strTextANapis końcowy |
W tym przykładzie zadeklarowaliśmy zmienną strTextA w pierwszym wierszu procedury i przypisaliśmy jej tekst. Następnie chcemy zwrócić okno wiadomości o wartości strTekstA. Oto wynik po uruchomieniu kodu:
Obraz 1. Kod bez opcji Explicit
Jak widać na obrazku 1, kod został pomyślnie wykonany. Okno komunikatu z wartością od strTekstA pojawiła się, mimo że nie zadeklarowaliśmy zmiennej strTekstA. Tutaj nie ma problemu z kodem, ale co by było, gdybyśmy błędnie napisali nazwę zmiennej:
1 | MsgBox strTxtA |
Tutaj napisaliśmy strTxtA (bez „e”) zamiast strTextA. W rezultacie otrzymujemy puste okno komunikatu, ponieważ zmienna strTxtA nie została zdefiniowana. Teraz zobaczymy, jak używać Option Explicit, aby zapobiec błędom.
Używanie zmiennych z Option Explicit
Jeśli chcesz uniemożliwić korzystanie ze zmiennych, które nie są zadeklarowane, musisz wpisaćOpcja Wyraźna u góry Twojego modułu:
1 | Opcja Wyraźna |
Oto kompletny kod, łącznie z literówką:
12345678910 | Opcja WyraźnaPrivate Sub ExampleWithOptionExplicit()Dim strTextA As StringstrTextA = "Testowanie VBA bez jawnej opcji"MsgBox strTxtANapis końcowy |
Zobaczmy, co się stanie, jeśli uruchomimy kod:
Obraz 2. Kod z Option Explicit
W rezultacie otrzymujemy błąd „Zmienna niezdefiniowana”, ponieważ nie zadeklarowaliśmystrTxtA zmienny.
Dodanie Option Explicit w górnej części modułów kodu pomaga zapobiegać błędom z błędnie napisanych zmiennych.
Jeśli chcesz dowiedzieć się więcej o VBA innych opcjach VBA, dowiedz się, jak ustawić VBA bez uwzględniania wielkości liter: Zapobiegaj uwzględnianiu wielkości liter w VBA