Pętle, VBA


Pętle

Do While, Do...Loop While, Do Until, Do...Loop Until, Exit Do

Do While

Pętla typu Do While jest chyba najbardziej powszechną pętlą Visual Basica. Wymaga ona zastosowania wyrażenia porównania. Wykorzystuje do tego celu operatory porównania. Pętla te jest ograniczona słowami kluczowymi Do i Loop. W ciele pętli może znajdować się jedna instrukcja lub cały blok instrukcji VB. Blok ten jest wykonywany tak długo jak długo podany warunek jest prawdziwy. Ważne jest więc, aby w ciele pętli umieścić instrukcje, które doprowadzą do tego, że podany warunek kiedyś stanie się fałszywy. W przeciwnym razie pętla się nie zakończy.

Składnia instrukcji Do While:

Do While (Warunek)
   Blok instrukcji VB wykonywany gdy Warunek jest prawdziwy
Loop


Blok instrukcji umieszczony w ciele pętli wykonywany jest tak długo, jak długo warunek pętli jest prawdziwy. Kiedy tylko stanie się fałszywy, to pętla kończy swoje działanie i przechodzi do rozkazu następnego za pętlą (za Loop). Jeżeli warunek jest fałszywy już na samym początku przed wykonaniem pętli, to blok instrukcji w ciele pętli nie zostanie wykonany ani razu.Charakterystyczne dla pętli Do While jest to, że jej ciało może nie zostać wykonane ani razu. Nieco inaczej działa pętla Do...Loop While, której ciało jest zawsze wykonywane przynajmniej jeden raz.
Najczęściej w Warunku pętli wykorzystywana jest jakaś zmienna. Należy zadbać, aby w ciele pętli wartość tej zmiennej zmieniała się, aby doprowadzić do fałszywości Warunku i zakończyć działanie pętli.

Przykład użycia instrukcji Do While:

intLiczba=0
Do While (intLiczba<100)
   intLiczba=InputBox("Wpisz liczbę całkowitą","Podaj liczbę")
Loop

(Zmienne, typy zmiennych, operatory porównania i funkcja InputBox() zostały opisane w innych częściach kursu.)

Zmiennej intLiczba przypisywana jest wartość 0. Sprawdzany jest warunek pętli i ponieważ jest on prawdziwy (0<100) wykonywane jest ciało pętli. W ciele pętli pobierana jest od użytkownika liczba, która jest podstawiana pod zmienną intLiczba. Wartość tej zmiennej zmienia się więc wewnątrz pętli. Pętla kontynuuje swoje działanie do czasu, kiedy użytkownik wprowadzi liczbę większą lub równą 100. Wtedy warunek stanie się fałszywy i pętla zakończy swoje działanie.

na górę strony...

Do...Loop While

Pętla Do...Loop While jest nieco inną formą pętli Do While. Podobnie do niej wymaga ona zastosowania wyrażenia porównania. Wykorzystuje do tego celu operatory porównania. Pętla te jest ograniczona słowami Do i Loop While (Warunek). W ciele pętli może znajdować się jedna instrukcja lub cały blok instrukcji VB. Blok ten jest wykonywany tak długo jak długo podany warunek jest prawdziwy. Ważne jest więc, aby w ciele pętli umieścić instrukcje, które doprowadzą do tego, że podany warunek kiedyś stanie się fałszywy. W przeciwnym razie pętla się nie zakończy.
W przeciwieństwie do pętli Do While Warunek umieszczony jest na końcu pętli i jest on sprawdzany po wykonaniu ciała pętli.

Składnia instrukcji Do...Loop While:

Do
   Blok instrukcji VB wykonywany gdy Warunek jest prawdziwy
Loop While (Warunek)


Blok instrukcji umieszczony w ciele pętli wykonywany jest tak długo, jak długo warunek pętli jest prawdziwy. Kiedy tylko stanie się fałszywy, to pętla kończy swoje działanie i przechodzi do rozkazu następnego za pętlą. Pętla ta wykona blok instrukcji zawarty w jej ciele nawet jeżeli warunek jest fałszywy już na samym początku, ponieważ jego prawdziwość jest sprawdzana na końcu pętli.Charakterystyczne dla pętli Do While jest to, że jej ciało wykona się na pewno przynajmniej raz
Najczęściej w Warunku pętli wykorzystywana jest jakaś zmienna. Należy zadbać, aby w ciele pętli wartość tej zmiennej zmieniała się, aby doprowadzić do fałszywości Warunku i zakończyć działanie pętli.


Przykład użycia instrukcji Do...Loop While:

Do
   intLiczba=InputBox("Wpisz liczbę całkowitą","Podaj liczbę")
Loop While (intLiczba<100)

(Zmienne, typy zmiennych, operatory porównania i funkcja InputBox() zostały opisane w innych częściach kursu.)

W ciele pętli pobierana jest od użytkownika liczba, która jest podstawiana pod zmienną intLiczba. Wartość tej zmiennej zmienia się więc wewnątrz pętli. Pętla kontynuuje swoje działanie do czasu, kiedy użytkownik wprowadzi liczbę większą lub równą 100. Wtedy warunek stanie się fałszywy i pętla zakończy swoje działanie. Wartość początkowa zmiennej intLiczba nie ma znaczenia dla prawdziwości warunku, ponieważ najpierw zostanie wykonane ciało funkcji (więc zostanie pobrana wartość zmiennej intLiczba) a dopiero potem zostanie sprawdzony warunek pętli.

na górę strony...

Do Until

Pętla typu Do Until jest pętlą podobną do Do While. Jedyna różnica polega na tym, że pętla Do Until wykonuje zawarty w niej blok rozkazów tak długo, jak długo podany warunek jest fałszywy. Wymaga ona zastosowania wyrażenia porównania. Wykorzystuje do tego celu operatory porównania. Pętla te jest ograniczona słowami kluczowymi Do i Loop. W ciele pętli może znajdować się jedna instrukcja lub cały blok instrukcji VB. Blok ten jest wykonywany tak długo jak długo podany warunek jest fałszywy. Ważne jest więc, aby w ciele pętli umieścić instrukcje, które doprowadzą do tego, że podany warunek kiedyś stanie się prawdziwy. W przeciwnym razie pętla się nie zakończy.

Składnia instrukcji Do Until:

Do Until (Warunek)
   Blok instrukcji VB wykonywany gdy Warunek jest fałszywy
Loop


Blok instrukcji umieszczony w ciele pętli wykonywany jest tak długo, jak długo warunek pętli jest fałszywy. Kiedy tylko stanie się prawdziwy, to pętla kończy swoje działanie i przechodzi do rozkazu następnego za pętlą (za Loop). Jeżeli warunek jest prawdziwy już na samym początku przed wykonaniem pętli, to blok instrukcji w ciele pętli nie zostanie wykonany ani razu.Charakterystyczne dla pętli Do Until, podobnie jak Do While, jest to, że jej ciało może nie zostać wykonane ani razu. Nieco inaczej działa pętla Do...Loop Until, której ciało jest zawsze wykonywane przynajmniej jeden raz.
Najczęściej w Warunku pętli wykorzystywana jest jakaś zmienna. Należy zadbać, aby w ciele pętli wartość tej zmiennej zmieniała się, aby doprowadzić do prawdziwości Warunku i zakończyć działanie pętli.

Przykład użycia instrukcji Do Until:

intLiczba=0
Do Until (intLiczba>100)
   intLiczba=InputBox("Wpisz liczbę całkowitą","Podaj liczbę")
Loop

(Zmienne, typy zmiennych, operatory porównania i funkcja InputBox() zostały opisane w innych częściach kursu.)

Zmiennej intLiczba przypisywana jest wartość 0. Sprawdzany jest warunek pętli i ponieważ jest on fałszywy (0>100) wykonywane jest ciało pętli. W ciele pętli pobierana jest od użytkownika liczba, która jest podstawiana pod zmienną intLiczba. Wartość tej zmiennej zmienia się więc wewnątrz pętli. Pętla kontynuuje swoje działanie do czasu, kiedy użytkownik wprowadzi liczbę mniejszą lub równą 100. Wtedy warunek stanie się prawdziwy i pętla zakończy swoje działanie.

na górę strony...

Do...Loop Until

Pętla Do...Loop Until jest nieco inną formą pętli Do Until. Podobnie do niej wymaga ona zastosowania wyrażenia porównania. Wykorzystuje do tego celu operatory porównania. Pętla te jest ograniczona słowami Do i Loop Until (Warunek). W ciele pętli może znajdować się jedna instrukcja lub cały blok instrukcji VB. Blok ten jest wykonywany tak długo jak długo podany warunek jest fałszywy. Ważne jest więc, aby w ciele pętli umieścić instrukcje, które doprowadzą do tego, że podany warunek kiedyś stanie się prawdziwy. W przeciwnym razie pętla się nie zakończy.
W przeciwieństwie do pętli Do Until Warunek umieszczony jest na końcu pętli i jest on sprawdzany po wykonaniu ciała pętli.

Składnia instrukcji Do...Loop Until:

Do
   Blok instrukcji VB wykonywany gdy Warunek jest fałszywy
Loop Until (Warunek)


Blok instrukcji umieszczony w ciele pętli wykonywany jest tak długo, jak długo warunek pętli jest fałszywy. Kiedy tylko stanie się prawdziwy, to pętla kończy swoje działanie i przechodzi do rozkazu następnego za pętlą. Pętla ta wykona blok instrukcji zawarty w jej ciele nawet jeżeli warunek jest prawdziwy już na samym początku, ponieważ jego prawdziwość jest sprawdzana na końcu pętli.Charakterystyczne dla pętli Do Until jest to, że jej ciało wykona się na pewno przynajmniej raz
Najczęściej w Warunku pętli wykorzystywana jest jakaś zmienna. Należy zadbać, aby w ciele pętli wartość tej zmiennej zmieniała się, aby doprowadzić do prawdziwości Warunku i zakończyć działanie pętli.


Przykład użycia instrukcji Do...Loop Until:

Do
   intLiczba=InputBox("Wpisz liczbę całkowitą","Podaj liczbę")
Loop Until (intLiczba<100)

(Zmienne, typy zmiennych, operatory porównania i funkcja InputBox() zostały opisane w innych częściach kursu.)

W ciele pętli pobierana jest od użytkownika liczba, która jest podstawiana pod zmienną intLiczba. Wartość tej zmiennej zmienia się więc wewnątrz pętli. Pętla kontynuuje swoje działanie do czasu, kiedy użytkownik wprowadzi liczbę mniejszą lub równą 100. Wtedy warunek stanie się prawdziwy i pętla zakończy swoje działanie. Wartość początkowa zmiennej intLiczba nie ma znaczenia dla prawdziwości warunku, ponieważ najpierw zostanie wykonane ciało funkcji (więc zostanie pobrana wartość zmiennej intLiczba) a dopiero potem zostanie sprawdzony warunek pętli.

na górę strony...

Exit Do

Może się zdarzyć, że konieczne jest opuszczenie pętli przed zakończeniem jej działania. Może to być potrzebne np. gdy dalsze działanie pętli doprowadzi do błędu. Instrukcją pozwalającą na przerwanie działania pętli jest Exit Do. Powoduje ona na natychmiastowe przerwanie działania pętli bez względu na prawdziwość podanego warunku.

Składnia instrukcji Exit Do:

Exit Do


Instrukcja Exit Do przeważnie poprzedzona jest instrukcją warunkową (najczęściej If) i powoduje przejście do rozkazu znajdującego się bezpośrednio za pętlą.

Przykład użycia instrukcji Exit Do:

Do
   intLiczba=InputBox("Podaj liczbę całkowitą",Wprowadź liczbę")
   if (intLiczba=intStala) Then
     Exit Do
   End If
   sngWynik=1/(intStala-intLiczba)
   intWiadomosc=MsgBox(sngWynik)
Loop While (intLiczba>0)

(Zmienne, typy zmiennych, operatory porównania, instukcja If i funkcje MsgBox() i InputBox() zostały opisane w innych częściach kursu.)

Pętla wykorzystuje zmienną intLiczba. Pobiera jej wartość od użytkownika i oblicza wyrażenie 1/(intStala-intLiczba). W przypadku gdyby wartości zmiennych intLicznik i intStala były takie same, wygenerowany zostałby błąd dzielenia przez 0. Stąd zabezpieczenie, które kończy działanie pętli, gdy wartości te będą równe.



Wyszukiwarka

Podobne podstrony:
Pętle, VBA
Wzajemna regulacja gruczołów wydzielania wewnętrznego, pętle sprzężeń między gruczołami
access programowanie w vba
Excel VBA Course Notes 1 Macro Basics
VBA w Excel7, excel
petle w pascalu, INFORMATYKA
VBA formuły z ćwiczeń z komentarzami
AutoCAD 2002 i 2004 Tworzenie makr w VBA
petle, Instrukcja for
pętle
VBA w Exce13, excel
VBA w Excelu, excel
ou lab vba 1
c03 petle
Microsoft Excel 2010 PL Jezyk VBA i makra Akademia Excela e21vba
04 Petle programowe cwiczenia przygotowujace
VBA w Exce18, excel

więcej podobnych podstron