[ Pobierz całość w formacie PDF ]
z poprzedniego przykładu można w następujący sposób zastąpić kodem korzystającym
z :
Oczywiście, możesz dodać więcej przypadków, zależnie od potrzeby. VBA będzie
badać wszystkie przypadki, aż znajdzie ten, który odpowiada wartości i wykona
zapisane w nim instrukcje. Jeżeli żaden przypadek nie będzie odpowiadał wartości
, wykonane zostaną instrukcje domyślnego przypadku . Użycie
jest opcjonalne, ale bardzo zalecane, aby struktura zawsze obejmowała wszystkie
możliwe przypadki.
Jeżeli te same instrukcje mają być wykonane dla wielu przypadków, możesz użyć
następującej składni:
lub
IIf
Przyjrzymy się jeszcze szybko strukturze , której nazwa pochodzi od Immediate If3.
jest przydatne, gdy chcemy nadać ostateczną wartość zmiennej, gdyż jego składnia
jest samo wystarczalna. Prawidłowa składnia wygląda tak:
3
Natychmiastowe (bezpośrednie) jeżeli przyp. tłum.
Rozdział 6. f& Podstawy programowania w VBA 101
Kod roboczy może wyglądać mniej więcej tak:
Struktura działa dość wolno i dlatego nie jest zbyt często używana w dużych pro-
gramach.
Teraz zwróćmy uwagę na struktury sterujące drugiego rodzaju, czyli pętle.
Pętle
Pętli używamy, gdy pewien blok instrukcji kodu ma być wykonywany albo określoną
liczbę razy, albo dopóty, dopóki coś się nie zdarzy. Jeżeli liczba wykonań pętli jest
określona, pętla jest sterowana przez licznik. Mówimy wówczas o powtarzaniu stero-
wanym licznikiem. Drugim rodzajem są pętle wykonywane tak długo, jak długo warunek
jest spełniony. Mówimy wówczas o powtarzaniu sterowanym warunkiem. Przyjrzymy
siÄ™ obu typom.
Pętla For...Next
jest przykładem pętli sterowanej licznikiem. Za pomocą rzeczywistych liczb
lub zmiennych możesz sterować następującymi elementami pętli:
Counter (licznik) to serce pętli. Zledzi liczbę powtórzeń wykonanych przez pętlę.
Start to wartość początkowa licznika. Rzadko się zdarza ustawianie innej
wartości startowej niż 1 (czasami robi się to w przypadku różnych obliczeń
matematycznych).
End (koniec) to liczba wyznaczająca koniec pętli. Gdy licznik przekroczy tę
wartość, wykonywanie pętli kończy się.
Step (krok) wyznacza, o ile wartość licznika zwiększa się przy każdym
wykonaniu pętli. Użycie kroku jest opcjonalne.
Oto przykład składni pętli :
Pamiętaj, że i mogą być zmiennymi. Zauważ, że ostatnią linią pętli jest ,
a nie , jak w strukturach, z jakimi dotychczas mieliśmy do czynienia. Jest to instrukcja
zwiększenia wartości licznika o jeden krok.
Do zadeklarowania pętli możemy użyć również takiej składni:
102 Część II f& Poznanie środowiska VBA
Taka definicja powoduje zwiększenie licznika pętli, w tym przypadku intCounter,
o pięć po każdym wykonaniu pętli. W rezultacie tego pętla ta wykona się pięć razy
(intCounter będzie miał kolejne wartości 1, 6, 11, 16, 21).
Nie jest rzeczą niezwykłą użycie struktury If & Then wewnątrz petli, tak jak w poniż-
szym przykładzie:
Już słyszę mojego wydawcę pojękującego, że wprowadziłem tu kilka rzeczy dodat-
kowych. Zatem przyjrzyjmy się dokładniej użytemu kodowi.
Jest to pętla mająca wykonać 10 powtórzeń. Zadaniem instrukcji wewnątrz
pętli jest sprawdzenie, czy jest to przebieg parzysty, czy nieparzysty. Do tego celu
posłużyła mi struktura . Mamy zatem strukturę
wewnątrz struktury . Jeżeli jedna struktura występuje wewnątrz innej, mówimy
o strukturach zagnieżdżonych, które są w programowaniu powszechnie stosowane.
Użyte wyrażenie warunkowe wykonuje specyficzne dzielenie. Użyłem słowa kluczo-
wego , które jest skrótem od modulus. zwraca resztę z dzielenia liczby A
przez liczbę B. Jeżeli liczbę parzystą podzielimy przez 2, resztą z dzielenia będzie 0.
Zatem jeżeli licznik zostanie podzielony przez 2 i resztą z dzielenia będzie 0, warunek
zostanie spełniony i kolejna instrukcja wykonana. Jeżeli reszta z dzielenia będzie
różna od zera, zostanie wykona instrukcja z części .
po prostu zwiększa wartość licznika.
Gdy uruchomisz tę procedurę, w oknie Immediate pojawią się następujące wyniki:
Zajmijmy się teraz innym rodzajem pętli.
Rozdział 6. f& Podstawy programowania w VBA 103
Pętla Do
jest pętlą z powtarzaniem sterowanym warunkiem. Innymi słowy pętlą działającą
dopóty, dopóki określony warunek jest spełniony (na przykład coś jest czemuś równe
lub od czegoś większe).
Istnieją dwa rodzaje pętli i . Przyjrzyjmy się im.
Do While
Pętla sprawdza, czy warunek jest spełniony. Jeżeli tak, instrukcje pętli są
wykonywane. Dla przykładu przyjrzyjmy się poniższej procedurze.
Jak widzisz, inaczej niż omawiana wcześniej , pętla nie jest samo-
wystarczalna. W tym przypadku musiałeś nadać wartości dwóm zmiennym jedna
posłużyła jako licznik, zaś druga jako zmienna testowa. W tym przypadku chciałem,
aby procedura zakończyła działanie po wykonaniu piątego powtórzenia pętli.
Przeciwnie niż w pętli , tutaj przebieg nie jest sterowany licznikiem, a powtarzanie
pętli trwa, dopóki wartość jest równa 1. Wewnątrz pętli zagniezdziłem strukturę
, sprawdzającą wartość licznika. Po osiągnięciu przez nią wartości 5 struk-
tura spowodowała zmianę wartości na 0, co zakończyło działanie pętli.
[ Pobierz całość w formacie PDF ]