Nachádzate sa tu
12. If, ElseIf, Else podminka a InputBox
V predchádzajúcom tutoriáli sme si vysvetlili podstatu If, Esle podmienky. V tomto tutoriáli sa pozrieme na rozšírenie If, Else podmienky o ElseIf, čo Vám umožní stanoviť viacero podmienok vrámci jednej veľkej if podmienky.
V tomto prípade rozšírime príklad z predošlého tutorialu o minimálnu mzdu. Excel makro teda vyhodnotí, či zarábate menej ako je minimálna mzda, viac ako minimum a menej ako priemer resp. viac ako priemer.
V predošlom tutoriáli sme pre načítanie hodnoy premennej "mzda" použili odkaz na bunku B3. V tomto tutoriáli použijeme InputBox (vyskakovacie okno pre zadanie zadanie hodnoty premmennej), ktorého syntax je nasledovná:
InputBox(“Správa pre užívateľa”,”Názov pre InputBox”)
Sub If_ElseIf()
'nacitaj premennu mzda, z InputBox
mzda = InputBox "Kolko zarabábaš?" “Program pre mzdu”
'nastav If podmienku ktora bude vykonana v pripade ze do inputBoxu uzivatel zada hodnotu mensiu resp.rovnu ako 350
If mzda <= 350 Then
MsgBox ("Tvoja mzda je " & mzda & " EUR co je o " & 350 - mzda & " menej ako minimalna mzda")
'podfarbi oblasť buniek na cerveno
ThisWorkbook.Sheets("Sheet1").Range("A1:P150").Interior.Color = RGB(255, 0, 0)
'nastav ElseIf podmienku ktora bude vykonana v pripade hodnota zadana do InputBox < 800
ElseIf mzda < 800 Then
MsgBox ("Tvoja mzda je " & mzda & " EUR co je o " & 800 - mzda & " menej ako priemer")
ThisWorkbook.Sheets("Sheet1").Range("A1:P150").Interior.Color = RGB(0, 255, 0)
'Ak neplatí ani jedna z hore uvedených podmienok
Else
MsgBox ("Tvoja mzda je " & mzda & " EUR co je o " & mzda - 800 & " viac ako priemer")
ThisWorkbook.Sheets("Sheet1").Range("A1:P150").Interior.Color = RGB(0, 0, 255)
End If
End Sub
Samozrejme, že VBA ElseIf môžete použiť v podstate nobmedzene veľa krát, pričom si však treba uvedomiť, že z rastom ElseIf rastie aj komplikovanosť kódu. Treba si dať pozor na to, že každá If podmienka musí byť uzavretá výrazom End If.
Hotové Excel makro si môžete stiahnuť a otestovať jeho funkcionalitu.