Professional Documents
Culture Documents
2. Adresowanie komrek w VB
W arkuszu kalkulacyjnym kada z komrek ma okrelony adres przez numer kolumny i wiersza,
na przeciciu ktrych ley. Kolumny oznaczone s kolejnymi literami, wiersze liczbami. I tak
w tabeli poniej, przedstawiajcej fragment arkusza kalkulacyjnego, komrka, w ktrej znajduje
si litera x, ma adres C1.
W Visual Basicu komrki arkusza adresowane s za pomoc liczb, przy czym pierwsz liczb
okrela si wiersz, a drug kolumn. W tabelce poniej przedstawiono odpowiednie adresy
komrek w Excelu i Visual Basicu. Dodatkowo, by zaznaczy, e odwoujemy si do komrki
arkusza, musimy liczby oddzieli przecinkiem, umieci w nawiasie okrgym i napisa przed nimi
sowo Cells (ang. komrki). W ten sposb w trakcie wykonywania program uyje zawartoci
zaadresowanej przez komrki znajdujcej si w arkuszu, z ktrego program zosta wywoany.
Jeeli si zdarzy, e odniesiemy si do komrki znajdujcej si w innym arkuszu, musimy wtedy
poprzedzi wywoanie nazw tego arkusza, np. Arkusz2.Cells(1,3).
A
C
x
E
C1
kolumna
3
4
Arkusz Excel
B3
E2
Cells(1,3)
wiersz
wiersz
kolumna
VB w Excelu
Zadanie do wykonania:
Uzupenij tabelk wpisujc odpowiednie
adresy komrek.
2/8
EXCEL
A1
B7
Visual Basic
Cells(3,3)
G8
H1
Cells(1,2)
Podsumowanie:
Okrelajc adres komrki w formule arkusza podajemy najpierw numer kolumny opisany
za pomoc litery, a nastpnie numer wiersza, ktry jest liczb.
Adres komrki arkusza w VB okrelony jest przez sowo Cells oraz podane w nawiasach
numer wiersza i numer kolumny:
Cells(nr_wiersza, nr_kolumny).
Gdy korzystamy dwch danych umieszczonych w innych arkuszach, adres komrki podajemy
wtedy jako Worksheets(Nazwa_arkusza).Cells(nr_wiersza, nr_kolumny).
VB w Excelu
3/8
A
Liczba A
Liczba B
3
4
Suma
Cells(1,2)
Cells(2,2)
Cells(4,2)
VB w Excelu
2.2.
4/8
Program
START
CZYTAJ A
CZYTAJ B
S <- A + B
WYPISZ S
STOP
VB w Excelu
5/8
A = Cells(1,2)
wpisz do A
zawarto
START
komrki B1
B = Cells(2,2)
CZYTAJ
A
CZYTAJ
B
B=
0?
S <- A + B
wpisz do B
zawarto komrki B2
sprawd, czy w komrce B2 jest zero
If B = 0 then
jeli B2 = 0, to wynik jest
tekstem o dzieleniu przez zero
Pisz:
Nie dziel przez zero
S = A/ B
WYPISZ
S
STOP
End If
4. Instrukcja warunkowa If
Instrukcja jest stosowana wtedy, gdy wykonanie pewnych czynnoci zaley od spenienia lub
niespenienia postawionego warunku.
Instrukcja warunkowa If ... moe mie
posta:
VB w Excelu
6/8
If warunek then
polecenie _1
else
polecenie_2
End If
speniony
T
warune
k
niespeniony
polecenie_1
polecenie_2
W tym przypadku, zalenie od stanu
warunku,
wykonane
bdzie
polecenie_1 lub polecenie_2, dopiero
potem
program
przejdzie
do
kolejnego polecenia.
Zarwno znw jestemy w sklepie.
Tym razem mamy kupi czekolad. Zadanie moe wyglda tak. Jeli jest gorzka czekolada
z Wedla, to j kupujemy, jeli nie ma, to kupujemy biaa czekolad Milka. W kadym przypadku
wykonamy jak czynno. Rodzaj czynnoci zaleny jest od spenienia lub niespenienia warunku
okrelonego w zadaniu.
warto
Instrukcje_dla_
VB w Excelu
7/8
Numer
(testowane_wyraenie)
Numer
Cells(3,3)= "Midzy 1 a 5"
(testowane_wyraenie)
6 <= Numer <=
Cells(3,3)= "Midzy 6 a 8"
Numer
else
(testowane_wyraenie)
VB w Excelu
8/8
Ptle
Ptle stosowane s wtedy, gdy musimy powtrzy okrelon liczb razy pewien fragment
programu, kilka instrukcji. Zalenie od tego, czy ilo powtrze jest z gry okrelona, czy te
zalena od podanego warunku, stosujemy inny rodzaj ptli. W Visual Basicu mamy do dyspozycji
dwa podstawowe typy ptli: ptle z licznikiem, ktre powtarzaj wykonywanie zbioru instrukcji
ustalon liczb razy (For Next), oraz ptle warunkowe, powtarzajce dany kod instrukcji,
gdy dany warunek jest speniany (Do While lub Do Until).
5.1.
VB w Excelu
9/8
For i = 1 To 50
Cells(i,3)=i
Next i
b. Teraz licznik (j) zaczyna zlicza od wartoci 2 i zlicza do wartoci 10, jednake krok nie jest
rwny jeden, lecz dwa, czyli przy kadym przejciu licznik bdzie automatycznie
zwikszany o 2. Poleceniem jest zwikszanie wartoci zmiennej total o aktualn warto
licznika przy kadym przejciu ptli. Warto pocztkowa zmiennej total ustalona zostaa poza
ptl (przed jej rozpoczciem).
For j = 2 To 10 Step 2
total = total + j
Next j
MsgBox "The total is " & total
c. I tym razem licznik nie startuje od zera czy jedynki, lecz od szesnastu. Teraz ma dodatkowo
ujemny krok, czyli jest zmniejszany przy kadym obrocie o 2, bo krok ptli rwny jest 2.
Ptla zostanie zatrzymana po wykonaniu polecenia, gdy licznik osignie warto 2 (warto
kocowa licznika).
For myNum = 16 To 2 Step -2
total = total + myNum
Next myNum
MsgBox "The total is " & total
5.2.
Ptla Do...While
Jak ju wiadomo, ptla DoWhile jest ptl warunkow. Instrukcje w niej umieszczone
wykonywane s tak dugo, jak dugo okrelony warunek jest speniony. Jeeli nie bdzie on
prawdziwy, dziaanie ptli zostanie przerwane.
Skadnia instrukcji jest nastpujca:
Do While warunek
Polecenie (lub polecenia) powtarzane
Modyfikacja zmiennej umieszczonej w warunku
Loop
lub
Do While
Polecenie (lub polecenia) powtarzane
Modyfikacja zmiennej umieszczonej w warunku
Loop warunek
gdzie
Do While sowa kluczowe okrelajce pocztek ptli warunkowej,
warunek warunek, od ktrego uzalenione jest dziaanie ptli, musi by speniony, by ptla bya
wykonywana,
Loop sowo kluczowe, zamyka ptl,
Polecenie (lub polecenia) powtarzane inne instrukcje, ktre powinny by wykonane,
Modyfikacja zmiennej umieszczonej w warunku jeli nie zmienimy wartoci zmiennej
umieszczonej w warunku, nasza ptla wykonywana bdzie nieskoczenie wiele razy i program nie
zakoczy swojego dziaania. W przeciwiestwie do ptli For...Next, gdzie zmiana licznika
nastpuje samoczynnie w czasie wykonywania ptli, to my sami musimy zadba o modyfikacj
zmiennej.
VB w Excelu
10/8
W pierwszym przypadku, gdy warunek nie zostanie speniony, instrukcje umieszczone w ptli nie
zostan ju wykonane. Dzieje si tak dlatego, e warunek sprawdzany jest na pocztku ptli,
a dziaanie ptli jest przerywane wtedy, gdy nie jest on speniony. Moe si wic zdarzy,
e instrukcje umieszczone w ptli nie zostan w ogle wykonane.
W drugim przypadku warunek sprawdzany jest na kocu ptli. Teraz instrukcje zostan wykonane
przynajmniej raz, nawet jeli warunek od pocztku nie jest speniony.
niespeniony
warunek
5.3.
speniony
Polecenia
zmienna warunku
Polecenia
niespeniony
warunek
speniony
zmienna warunku
5.3.
Podobnie, jak w przypadku ptli Do...While, mamy do czynienia z ptl warunkow. Jej dziaanie
zalene jest wic od zadanego w niej warunku. Jednake ptla Do... Until wykonywana jest dopki
postawiony warunek jest faszywy.
Skadnia instrukcji jest nastpujca
Do Until warunek
Polecenie (lub polecenia) powtarzane
Modyfikacja zmiennej umieszczonej w warunku
Loop
Jak wida w powyszym przykadzie zmienna MyNum ma pocztkowo warto 0, a zatem warunek
MyNum > 10 jest faszywy. Ptla ta zostanie wykonana tyle razy, a liczba MyNum nie bdzie
wiksza od 10, bo warunek sta by si wtedy prawdziwy.
speniony
warunek
niespeniony
Polecenia
zmienna warunku