Sterowanie wykonywaniem procedur
oraz
powtarzanie operacji
Tomasz Węgrzyn
Katedra Matematyki Stosowanej
1
dr Tomasz Węgrzyn
Plan wykładu
Sterowanie wykonywaniem procedur
1. Operatory porównania i operatory logiczne
2. Struktura If...Then
" Kilka warunków w strukturze If...Then
3. Struktura If...Then...Else
4. Zagnieżdżanie struktur If...Then
5. Struktura Select Case
" Słowo kluczowe Is z klauzulą Case
" Określanie przedziału w klauzuli Case
" Kilka warunków w klauzuli Case
2
dr Tomasz Węgrzyn
Plan wykładu
Powtarzanie operacji
7. Pętla Do...While
8. Pętla For...Next
3
dr Tomasz Węgrzyn
Operatory porównania i operatory logiczne (1)
Sterowanie wykonywaniem procedur polega na użyciu wyrażeń
warunkowych wewnątrz specjalnych struktur języka VBA.
Wyrażenie warunkowe to wyrażenie w którym znajduje się operator
porównania, operator logiczny lub ich kombinacja.
W momencie napotkania wyrażenia warunkowego VBA sprawdza czy
jest ono prawdziwe czy fałszywe.
4
dr Tomasz Węgrzyn
Operatory porównania i operatory logiczne (2)
Operatory porównania
Operator Znaczenie
= równe
<> różne
> większe
< mniejsze
>= większe lub równe
<= mniejsze lub równe
Is Identyczne (tylko dla obiektów)
Like Równe (zgodne ze wzorcem)
5
dr Tomasz Węgrzyn
Operatory porównania i operatory logiczne (3)
Operatory logiczne
Operator Znaczenie
Wszystkie warunki muszą być spełnione, zanim
AND
dana czynność będzie mogła zostać wykonana
Przynajmniej jeden z podanych warunków musi
OR
być spełniony, zanim dana czynność będzie
mogła zostać wykonana
Użyty w celu negacji warunku.
Jeżeli warunek jest prawdziwy, NOT
NOT
spowoduje, że będzie fałszywy.
Jeżeli warunek jest fałszywy NOT spowoduje,
że będzie prawdziwy
6
dr Tomasz Węgrzyn
Struktura If...Then (1)
Służy do warunkowego wykonania jednej lub większej liczby instrukcji.
Składnia:
If [warunek] Then [instrukcja jeżeli warunek jest prawdziwy]
Przykład 1.
If Weekday(Date) = 6 Then MsgBox "Jutro zaczyna się weekend"
Date zwraca bieżącą datę systemu,
Weekday zwraca liczbę oznaczającą dzień tygodnia.
7
dr Tomasz Węgrzyn
Struktura If...Then (2)
W przypadku prawdziwości warunku istnieje możliwość wykonania więcej
niż jednej instrukcji. Wtedy należy wykorzystać blokową wersję konstrukcji
If...Then:
Składnia:
If [warunek] Then
[instrukcja1 jeżeli warunek jest prawdziwy]
[instrukcja2 jeżeli warunek jest prawdziwy]
[instrukcja3 jeżeli warunek jest prawdziwy]
End if
Przykład 2.
8
dr Tomasz Węgrzyn
Struktura If...Then (2)
Przykład
If Weekday(Date, 2) = 5 Then
MsgBox "Jutro jest piątek"
ActiveCell = "piątek"
ActiveCell.Font.Bold = True
ActiveCell.Font.ColorIndex = 5
ActiveCell.Font.Size = 14
ActiveCell.Interior.ColorIndex = 6
End If
9
dr Tomasz Węgrzyn
Struktura If...Then (3) kilka warunków
Aby instrukcja If...Then sprawdziła więcej niż jeden warunek przed
wykonaniem określonych instrukcji należy wykorzystać operatory logiczne.
Składnia:
If [warunek1] or/and [warunek2] Then
[instrukcja1 jeżeli warunek jest prawdziwy]
[instrukcja2 jeżeli warunek jest prawdziwy]
End if
If [warunek1] or/and [warunek2] Then [instrukcja jeżeli warunki1/2 spełnione]
Przykład 3.
10
dr Tomasz Węgrzyn
Struktura If...Then (3) kilka warunków
Przykład
If Weekday(Date, 2) = 6 or Weekday(Date, 2) = 7 Then
msgbox "dzisiaj jest weekend"
ActiveCell.Font.Bold = True
ActiveCell.Font.ColorIndex = 5
ActiveCell.Font.Size = 14
ActiveCell.Interior.ColorIndex = 6
End If
11
dr Tomasz Węgrzyn
Struktura If...Then...Else (1)
Jeżeli program ma wykonać pewne instrukcje w przypadku gdy określony warunek
jest prawdziwy i inne instrukcje, jeżeli warunek jest fałszywy to jednym z rozwiązań
jest wykorzystanie konstrukcji If...Then...Else.
Składnia:
If [warunek1] Then
[instrukcja1 jeżeli warunek jest prawdziwy]
[instrukcja2 jeżeli warunek jest prawdziwy]
Else
[instrukcja3 jeżeli warunek jest fałszywy]
[instrukcja4 jeżeli warunek jest fałszywy]
End if
Przykład 4.
12
dr Tomasz Węgrzyn
Struktura If...Then...Else (1)
Przykład
If Weekday(Date, 2) = 4 Then
MsgBox "Dzisiaj jest czwartek"
Else
MsgBox "Dzisiaj nie jest czwartek"
End If
13
dr Tomasz Węgrzyn
Struktura Select Case (1)
Struktura Select Case służy do warunkowego wykonywania instrukcji.
Składnia:
Select Case [wyrażenie]
Case [wartość1]
[instrukcje, gdy wartość1 = wyrażeniu]
Case [wartość2]
[instrukcje, gdy wartość2 = wyrażeniu]
Case [wartość3]
[instrukcje, gdy wartość3 = wyrażeniu]
Case Else
[instrukcje, gdy żadna wartość nie jest równa wyrażeniu]
End Select
[wyrażenie] to najczęściej zmienna, odwołanie do komórki arkusza lub funkcja
zwracająca wartość
14
dr Tomasz Węgrzyn
Struktura Select Case (1)
Przykład
Select Case Weekday(date, 2)
Case 1
Msgbox "Dzisiaj jest poniedziałek"
Case 2
Msgbox "Dzisiaj jest wtorek"
Case 5
Msgbox "Dzisiaj jest piątek"
Case Else
Msgbox "Dzisiaj nie jest ani poniedziałek, ani wtorek, ani piątek"
End Select
15
dr Tomasz Węgrzyn
Struktura Select Case (1)
Zapisanie warunku mniejszości/większość wymaga użycia słowa kluczowego Is:
przykład: Case Is >= 18
[instrukcje, gdy wyrażenie przyjmuje wartości większe niż 18]
Zapisanie przedziału wartości wymaga połączenia ich słowem kluczowym to:
przykład: Case 10 to 15
[instrukcje, gdy wyrażenie przyjmuje wartości z przedziału <10; 15> ]
Zapisanie kilku wartości, które może przyjąć [wyrażenie] wymaga połączenia ich przecinkiem:
przykład: Case 7, 8, 9
[instrukcje, gdy wyrażenie przyjmuje wartości 7 lub 8 lub 9]
16
dr Tomasz Węgrzyn
Kilka warunków w klauzuli Case (1)
Przykład
myValue = inputbox("wprowadz wartość")
Select Case myValue
Case Is <= 5
msgbox "Podana wartość jest mniejsza lub równa 5"
Case 6, 7
msgbox "Podana wartość to 6 lub 7"
Case 8 to 12
msgbox "Podana wartość jest z przedziału od 8 do 12"
Case Is > 12
msgbox "Podana wartość jest większa niż 12"
End Select
17
dr Tomasz Węgrzyn
Plan wykładu
Powtarzanie operacji
7. Pętla Do...While
8. Pętla For...Next
18
dr Tomasz Węgrzyn
Pętla Do...While (1)
Instrukcje wewnątrz pętli są wykonywane gdy określony warunek jest spełniony.
Składnia:
Do [While warunek]
[instrukcje]
[Exit Do]
[instrukcje]
Loop
Instrukcje wewnątrz pętli są wykonywane tylko, gdy warunek jest prawdziwy.
Umieszczenie warunku po słowie Do powoduje, że pętla może nie zostać wykonana ani razu.
Exit Do jest używane gdy pętla Do ... While loop powinna zostać przerwana nawet jeżeli
warunek po słowie Do jest prawdziwy. Przed instrukcją Exit Do musi zostać wprowadzone
wyrażenie warunkowe (if then lub select case).
19
dr Tomasz Węgrzyn
Pętla Do...While (2)
Instrukcje wewnątrz pętli są wykonywane gdy określony warunek jest spełniony.
Składnia:
Do
[instrukcje]
[Exit Do]
[instrukcje]
Loop [While warunek]
Umieszczenie warunku po słowie Loop powoduje, że pętla zostanie wykonana
przynajmniej jeden raz. Kolejne wykonanie pętli jest możliwe, jeżeli warunek jest
prawdziwy.
20
dr Tomasz Węgrzyn
Pętla Do...While (3)
1. Wykorzystując pętlę do while wyznacz średni wiek klienta.
2. Wykorzystując pętlę do while wyznacz średni wiek klienta mającego powyżej
30 lat.
3. Wykorzystując pętlę do while wyznacz średni wiek pierwszych 20 klientów.
21
dr Tomasz Węgrzyn
Pętla For...Next (1)
Instrukcje wewnątrz pętli są wykonywane określoną ilość razy.
Składnia:
For licznik = wart_pocz To wart_końcowa [Step wartość_kroku]
[instrukcje]
[Exit For]
[instrukcje]
Next
Przykład 5/5a
Domyślnie wartość kroku wynosi 1. Wykorzystując słowo kluczowe Step
można modyfikować wartość kroku.
22
dr Tomasz Węgrzyn
Pętla For...Next (2)
Przykład
1. Wykorzystując pętlę for next wyznacz średni wiek klienta.
2. Wykorzystując pętlę for next wyznacz średni wiek klienta mającego
powyżej 30 lat.
3. Wykorzystując pętlę for next wyznacz średni wiek pierwszych 20
klientów.
23
Wyszukiwarka
Podobne podstrony:
W 132009 10 13 Wstęp do SI [w]id&832UAS 13 zaoer4p2 5 13Budownictwo Ogolne II zaoczne wyklad 13 ppozch04 (13)model ekonometryczny zatrudnienie (13 stron)Logistyka (13 stron)Stereochemia 13więcej podobnych podstron