Funkcia IIf
V niektorých prípadoch je nepraktické písať podmienky If-Else alebo Select-Case. Ak máme jednú podmienku, ale len odpovede typu ak jedno platí, inak druhé platí, tak je možné použiť funkciu IIf.
Syntax funkcie IIf:
lubovolnaPremenna = IIf (Podmienka, Ak je výraz pravdivý, Ak výraz nie je pravdivý)
Narozdiel od konštrukcie If-Else alebo Select-Case funkcia IIf vracia hodnotu.
1. príklad: Využitie funkcie IIf.
Sub Example REM začiatok procedúry
vek = InputBox("Zadajte svoj vek!") REM vstup od užívateľa
Dim boolValue As Boolean REM deklarácie premenných
Dim retazec As String
REM použitie funkcie IIf a priradenie výsledku do reťazca
retazec = IIf(CInt(vek) > 17, "V poriadku! Máš prístup k videám prístupné
od 18 rokov", "Nemaš 18 rokov! A tak ti zamietam prístup k videám prístupné
od 18 rokov!")
MsgBox retazec REM výpis reťazca
End Sub REM koniec procedúry
Vstup od užívateľa
Výsledok
Rozbor makra: Po spustení makra užívateľ zadá svoj vek. Následne využijeme funkciu IIf a rozhodneme, či vek je vhodný pre videa vhodné od 18 rokov. Prvý argument funkcie IIf je podmienka. Druhý argument sa vykoná vtedy, ak je podmienka pravdivá. Ak je podmienka nepravdivá, vykoná sa tretí argument. Následne funkcia po vyhodnotení podmienky vráti jednú z týchto argumentov. Funkcia IIf vráti v našom prípade reťazec a odovzdá ho premennej retazec,ktorá sa vypíše na obrazovku.
Funkcia Choose
Funkcia Choose pracuje s listom. List je zoznam a podobá sa na pole. Ale narozdiel od poľa má iné indexovanie prvkov a vieme bez problémov jednotlivé položky zoznamu pridávať a mazať.
Funkcia Choose nám umožní rýchly prístup k jednotlivým prvkom zoznamu a vykonávať ďalšie operácie. Avšak, list v Choose je využitý pre príkazy alebo premenné a nie ako samostatný list, ktorý si žije svojím „životom“. Choose sa napadne podobá konštrukcie podmienok Select-Case a je to tak. Choose je takou alternatívou k podmienkam, avšak s mierne odlišnou filozofiou použitia.
Syntax funkcie Choose:
object = Choose(číslo indexu, Select s indexom 1, Select s indexom 2, Select s indexom 3,…,...)
Funkcia Choose vracia 0, ak číslo indexu je menšie ako 1. Inak funkcia Choose vráti Select s definovaným indexom.
2. príklad: Využitie funkcie Choose
Sub Example
Dim i As Integer REM deklarácie premennách
Dim retazec As String
Dim a As Integer
Dim b As Integer
a = InputBox("Zadaj prvé číslo!") REM vstupy od užívateľov
b = InputBox("Zadaj druhé číslo!")
For i = 1 To 4 REM cyklus
retazec = retazec & Choose(i, Scitanie(a,b), Odcitanie(a,b), Nasobenie(a,b),
Delenie(a,b)) & Chr(10)
Next
MsgBox retazec
End Sub
REM definovanie funkcii
Function Scitanie(a, b) As String
Dim vysledok As Integer
vysledok = a + b
Scitanie = "Vysledok sčitania čísla: " & a & " a " & b & " je:
" & vysledok
End Function
Function Odcitanie(a, b) As String
Dim vysledok As Integer
vysledok = a – b
Odcitanie = "Vysledok odcitania čísla: " & a & " a " & b & " je:
" & vysledok
End Function
Function Nasobenie(a, b) As String
Dim vysledok As Integer
vysledok = a * b
Nasobenie = "Vysledok násobenia čísla: " & a & " a " & b & " je:
" & vysledok
End Function
Function Delenie(a, b) As String
Dim vysledok As Integer
vysledok = a / b
Delenie = "Vysledok delenia čísla: " & a & " a " & b & " je:
" & vysledok
End Function
Vstup od užívateľa
Vstup od užívateľa
Výsledok
Rozbor makra: Užívateľ zadá dve čísla a následne sa spustí cyklus For. V cykle For sa nachádza i celé logika funkcie Choose. Premenná i je postupné zvyšovaná o hodnotu 1 a určili sme, aby premenná i určovala hodnotu indexu listu funkcie Choose. Táto hodnota indexu rozhodne, ktorá funkcia bude vykonaná. Zvyšok by už by mal byť jasný.
Čakajú nás funkcie IIf a Choose. Funkcia IIf je alternatívou k podmienke If-Else (alebo Select-Case)
a funkcia Choose je viacmenej alternatíva k Select-Case, ale funkčne je mierne odlišná.










