19
VBA w Excel – jak napisać pętle?

Cognity kurs VBA - pętle

Embed Size (px)

DESCRIPTION

Zapoznaj się z prezentacją na temat tworzenia pętli w języku VBA. Jest to temat omwainy podczas kursu VBA, więcej informacji oraz programy szkolen znajdą Państwo na stronie: http://www.cognity.pl/szkolenie-vba-w-excelu,s,71.html

Citation preview

Page 1: Cognity kurs VBA - pętle

VBA w Excel – jak napisać pętle?

Page 2: Cognity kurs VBA - pętle

VBA w Excel – jak napisać pętle?

Page 3: Cognity kurs VBA - pętle

Szanowni Państwo,

W poniższej prezentacji znajdą Państwo

omówione wstawiania pętli w języku VBA z

wykorzystaniem MS Excel.

W Strefie Wiedzy na stronie Cognity znajdą

państwo wiele informacji, ciekawostek, kursów i

przykładów systematyzujących poznaną

wcześniej wiedzę z zakresu MS Office.

Page 4: Cognity kurs VBA - pętle

Pętle w Excelu są bardzo wygodnym

narzędziem. Służą one przede wszystkim do

wielokrotnego wykonywania danego bloku kodu.

Pętle w VBA wykorzystujemy do obliczeń

matematycznych, wyodrębniania fragmentów

danych, a także do wykonywania tych samych

operacji na wielu obiektach.

Kurs VBA

Page 5: Cognity kurs VBA - pętle

Wyobraźmy sobie sytuację, w której musimy ponumerować komórki od A2 do A11 wartościami od jeden do dziesięciu. Zadanie można wykonać w następujący sposób:

• Cells(2, 1) = 1

• Cells(3, 1) = 2

• Cells(4, 1) = 3

• Cells(5, 1) = 4

• Cells(6, 1) = 5

• Cells(7, 1) = 6

• Cells(8, 1) = 7

• Cells(9, 1) = 8

• Cells(10, 1) = 9

• Cells(11, 1) = 10

Czy istnieje krótszy sposób zapisu? Oczywiście tak.

Kurs VBA

Page 6: Cognity kurs VBA - pętle

Celem artykułu jest zapoznanie

użytkowników z pętlami – konstrukcjami

programistycznymi specjalnie

zaprojektowanymi do wykonywania

powtarzalnych zadań.

Kurs VBA

Page 8: Cognity kurs VBA - pętle

Konstrukcja pętli For … Next

For zmienna = początek To koniec [Step co_ile]

'instrukcje

Next [zmienna]

Kurs VBA

Page 9: Cognity kurs VBA - pętle

Opis pętli For … Next

W języku VBA wszystkie pętle mają swój początek i koniec. W przypadku tej pętli początkiem jest słowo kluczowe For, natomiast koniec oznaczony jest słowem kluczowym Next. Dla pętli For należy określić poniższe elementy:

• licznik, któremu wskazujemy wartość początkową oraz wartość końcową – wartość ta pozwoli na opuszczenie pętli;

• opcjonalnie można określić krok, czyli wartość o którą licznik zostanie powiększany w każdym przebiegu pętli.

Kurs VBA

Page 10: Cognity kurs VBA - pętle

Przykład• Uzupełnij od komórki A2 do A11 liczbami w

następujący sposób: w komórce A2 wpisz jeden, w komórce A3 w wpisz dwa itd.

For i = 2 To 11

Cells(i, 1) = i - 1

Next

• Licznikowi przypisano wartość początkową dwa, a warunkiem końcowym wychodzącym z pętli to wartość jedenaście. Przy każdym przebiegu pętli następuje zwiększenie zmiennej i o jeden. Do komórki w kolumnie A oraz i - tym wierszu następuje przypisanie wartości i – 1.

Kurs VBA

Page 12: Cognity kurs VBA - pętle

Konstrukcja pętli Do While … Loop

Do While warunek

'instrukcje

Loop

Kurs VBA

Page 13: Cognity kurs VBA - pętle

Opis pętli Do While … Loop

Pętla wykonywana jest wtedy i tylko wtedy, gdy

spełniony jest warunek.

Kurs VBA

Page 14: Cognity kurs VBA - pętle

Przykład• Uzupełnij od komórki A2 do A11 liczbami w następujący

sposób: w komórce A2 wpisz jeden, w komórce A3 w wpisz dwa itd.

i = 1

Do While i <= 10

Cells(i + 1, 1) = i

i = i + 1

Loop

• Powstaje prawie identyczny zapis co w pętli For z tą różnicą, że przypisywana jest wartość i dla komórki w wierszu i + 1 w kolumnie A. Proszę zauważyć, że pętla Do nie ma automatycznie zwiększanego licznika, dlatego istotna jest linia i = i + 1. Bez tej instrukcji mielibyśmy do czynienia z nieskończoną pętlą.

Kurs VBA

Page 16: Cognity kurs VBA - pętle

Konstrukcja petli For Each

For Each element In kolekcja

'instrukcje

Next

Kurs VBA

Page 17: Cognity kurs VBA - pętle

Opis pętli For Each … Next

Jeśli mamy do czynienia ze zbiorem (a dokładniej

kolekcją) danych, to warto rozważyć

wykorzystanie pętli For Each, ponieważ nie

trzeba określać warunków jak i początku i końca

zakończenia pętli.

Kurs VBA

Page 18: Cognity kurs VBA - pętle

Przykład pętli For Each … Next

• Wprowadź literę „X” do wszystkich zaznaczonych komórek.

For Each komorka In Selection

komorka.Value = "X"

Next• Selection to kolekcja komórek, które można

wykorzystać w pętli For Each. Dla każdej komórki przypisano wartość „X”.

Kurs VBA