W żargonie programistycznym błąd często nazywany jest pluskwą (z ang. bug). Określenie to wzięło się z czasów pierwszego komputera stworzonego w większej skali.
Debugowanie
Przyczyną tego, że komputer nie zawsze działał prawidłowo była ćma znaleziona pomiędzy obwodami. Komputer zbudowany w roku ok. 1945r. składał się z 750 tysięcy części, miał siedemnaście metrów długości (!) i ważył ponad pięć ton. Każdą instrukcję przetwarzał w czasie około pięciu sekund – dzisiejsze komputery potrafią wykonać setki milionów instrukcji na sekundę!
Wracając jednak do tematu. Skoro wiemy skąd wziął się termin bug to łatwo także wyjaśnić, co oznacza bardzo popularne pojęcie debugowania kodu.
Przedrostek de oznacza odwrócenie procesu bądź jego przeciwieństwo, więc debugowanie możemy przetłumaczyć na coś w stylu odrobaczania, odpluskwiania. I faktycznie celem debugowania jest zlokalizowanie błędów odpowiedzialnych za nieprawidłowe działanie aplikacji.
Rodzaje Błędów w VBA
Dzisiaj chciałbym napisać kilka słów na temat rodzajów błędów, jakie możemy napotkać pisząc lub testując swój kod w edytorze VBA.
Błędy Czasu Projektowania
Jak sama nazwa wskazuje są to błędy, które pojawiają się podczas pisania kodu i dotyczą głównie poprawności składni języka VBA.
Chodzi tutaj przede wszystkim o gramatykę, interpunkcję, brakujące nawiasy, braki w instrukcji, a także niewłaściwą liczbę argumentów przekazaną do funkcji. W takiej sytuacji od razu zostajemy poinformowani o błędzie za pomocą odpowiedniego okienka z komunikatem (domyślne ustawienia w karcie EDITOR panela OPTIONS).
Błędy Kompilacji
Początkujący adepci VBA bardzo rzadko korzystają z przycisku Compile VBAProject. Tymczasem jego uruchomienie jest absolutnie konieczne w sytuacji, gdy chcemy sprawdzić poprawność kodu w naszym projekcie. Kompilator bardzo szybko wychwyci takie błędy i wyświetli odpowiednie okienko.
Błędy te dotyczą przede wszystkim pomyłek w przypisywaniu zmiennych. Przykładowo, możemy zadeklarować zmienną typu Workbook, ale przypisać ją do arkusza, a nie skoroszytu. W takiej sytuacji składnia będzie prawidłowa jednak kompilator zaprotestuje przy uruchamianiu makra.
Błędy Czasu Wykonania
Są to nieobsłużone i nieprzewidziane błędy, które pojawiają się w trakcie wykonywania makra. Może się okazać, że próbujemy otworzyć plik, który nie istnieje (bo np. został przeniesiony w inne miejsce). A może zadeklarowaliśmy zmienną dla ostatniego niepustego wiersza jako Integer, operując na danych liczących setki tysięcy wierszy. W takiej sytuacji pojawi się okienko z numerem i opisem błędu , a wykonanie programu zostanie wstrzymane.
Błędy Logiczne
Są to błędy ludzkie, ponieważ kompilator nie zgłasza żadnych obiekcji odnośnie kodu – nie widzi błędów. Błędy pojawiają się na wskutek błędnych założeń i dlatego są najtrudniejsze do zlokalizowania.
Chociaż edytor VBA nie wyświetli żadnego błędu to jednak otrzymany wynik będzie inny od oczekiwanego. W takiej sytuacji należy przestudiować wnikliwie każdą linię kodu.
Takie błędy mogą być związane np. z tablicą gdzie dolny indeks zaczyna się od 0, a my zakładamy, że od 1.