Rozpatrzmy taki przykład:
Sub Obliczenia()
Wartos = 5 * 6
Wartosc = Wartosc + 3
MsgBox Wartosc
End Sub
Jaką liczbę wyświetli instrukcja MsgBox?
Mogłoby się wydawać, że 33 (5*6=30, 30+3=33). Ale zwróć uwagę, że w pierwszej linijce zrobiłem literówkę (jest Wartos zamiast Wartosc). Tak więc w drugiej linijce naszej procedury zmienna Wartosc ma wartość 0 (a nie jakbyśmy chcieli 30) więc zero plus 3 daje nam liczbę 3.
Aby zapobiec takim błędom należy deklarować wszystkie zmienne na początku procedury/funkcji. Warto jest wymusić obowiązek deklarowania wszystkich zmiennych poprzez umieszczenie dyrektywy Option Explicit na początku modułu. Nasz kod po poprawkach wygląda następująco:
Option Explicit
Sub Obliczenia()
Dim Wartosc
Wartos = 5 * 6
Wartosc = Wartosc + 3
MsgBox Wartosc
End Sub
Gdy uruchomimy makro, pojawi się błąd, gdyż została zadeklarowana zmienna Wartosc, ale nie zadeklarowaliśmy zmiennej Wartos.
Kolejna wskazówka: deklarując zmienną mam w zwyczaju (przy instrukcji Dim) pisać nazwę zmiennej z dużej litery tj. Wartosc. Jak później w kodzie odwołuje się do zmiennej to specjalnie piszę nazwę zmiennej z małej litery tj wartosc. Gdy przejdę do nowego wiersza, to edytor VBA poprawi wielkość liter tak, jak było przy deklaracji (czyli dokładnie tak jak napisałem przy instrukcji Dim). W ten sposób kontroluje się, czy nie popełniłem literówki w nazwie zmiennej – jeśli przechodzę do nowej linii, a edytor VBA mi nie zmieni pierwszej litery na dużą w nazwie zmiennej, to mogę podejrzewać, że „coś jest nie tak”.