Ve spolupráci se SEDUO jsem vytvořil několik videokurzů:
... jestliže, pak... a ne jinak :) Jak VBA program (makro) rozdělit do více větví podle určitých podmínek.
Doplněno: 10.6.2016
Při programování ve VBA mnohdy potřebujeme určitým způsobem usměrnit provádění příkazu, neboli větvit program. Využít můžeme příkazy If, Then, ElseIf, Else. Toto větvení může vzdáleně připomínat funkci KDYŽ, která je taktéž k dispozici v programu MS Excel.
Pro přehlednsot je článek rozdělen na kapitoly:
Trocha teorie do začátku:
If podmínka_1 Then
výsledek_1
ElseIf podmínka_2 Then
výsledek_2
...
ElseIf podmínka_n Then
výsledek_n
Else
výsledek_jinak
End If
Poznámka: ElseIf, Else jsou volitelné.
Použití porovnávací operátory:
If Name Like "*obsahuje*" Then
Použití logické operátory:
Podrobněji v článku: Operátory VBA Excel
Podrobněji o operátoru Like v článku: Operátory Like v VBA Excel
jestliže ... pak
Nejednodušší větvení. Přeloženo do češtiny: jestliže ... pak.
´jestliže je odpověď muž pak zobrazí zprávu.
IF Odpoved = "muz" Then
MsgBox "Jsi muž."
End If
Lze zapsat i do jednoho řádku:
If 8 > 2 Then MsgBox "8 Je větší než 2"
jestliže ... pak... jinak
Trochu složitější větvení. Odpovídá českému: jestliže, pak, jinak.
´jestliže je odpověď muž pak zobrazí zprávu jinak zobrazí jinou zprávu
IF Odpoved = "muz" Then
MsgBox "Jsi muž."
Else
MsgBox "Jsi žena."
End If
jestliže a - pak a ...jestliže b - pak b ... jinak
Nejsložitější, tedy relativně nejsložitější. Tímto způsobem můžeme přehledně usměrnit i velice složitý požadavek.
IF Vek < 15 Then
MsgBox "Jsi dite."
Elseif Vek < 30 Then
MsgBox "Jsi mlaďoch."
Elseif Vek < 60 Then
MsgBox "Jsi v nejlepších letech."
Else
MsgBox "Jsi téměř v důchodu."
End If
Jak opustit if then:
If Vek < 0 Then
Exit Sub
End If
Podrobněji v samostatném článku: Exit .
Jak zkontrolovat dvě podmínky, minimálně jedná musí být splněna. Kontrolována hodnota je umístěna v buňce B14.
Odpoved = Range("B14").Value
If Odpoved = "A" Or Odpoved = "B" Or Odpoved = "C" Then
MsgBox "Písmeno A, B nebo C"
Else
MsgBox "Jiné písmeno než A, B, C."
End If
Jak zkontrolovat dvě podmínky, které platí současně. Kontrolované hodnoty musí být umístěny v buňkách B18 a B20.
Odpoved1 = Range("B18").Value
Odpoved2 = Range("B20").Value
If Odpoved1 = "žena" And Odpoved2 = "ANO" Then
MsgBox "Jsi žena kuřačka."
ElseIf Odpoved1 = "žena" And Odpoved2 = "NE" Then
MsgBox "Jsi žena nekuřačka."
ElseIf Odpoved1 = "muž" And Odpoved2 = "NE" Then
MsgBox "Jsi muž nekuřák."
Else
MsgBox "Jsi muž kuřák."
End If
Zadat číslo a provést rozhodnutí, zda je sudé, nebo liché. V případě, že je zadáno něco jiného chybová hláška za využití On Error GoTo.
On Error GoTo nalezen_problem
Dim number As Integer
number = InputBox("Zadej číslo: ")
If number Mod 2 = 0 Then
MsgBox "Číslo sude!"
Else
MsgBox "Číslo liché!"
End If
Exit Sub
nalezen_problem:
MsgBox "Problém, asi nebylo zadáno číslo :)"
Jak na podmínky v Google tabulkách:
function IfThen2() {
var i = 2;
if (i == 1) {
Browser.msgBox( 1 );
}
else {
Browser.msgBox( "No 1." );
}
}
// ---------------------------------------------
function IfThen3() {
var i = 2;
if (i == 1) {
Browser.msgBox( 1 );
}
else if (i == 2) {
Browser.msgBox("Number Two.");
}
else {
Browser.msgBox( "No 1, 2." );
}
}
// ---------------------------------------------
function IfThenOR() {
var i = 2;
if (i == 1 || i == 2) {
Browser.msgBox( "i = 1 or i = 2" );
}
}
// -----------------------------------------------
function IfThenAND() {
var i = 2;
if (i == 2 && i == 2) {
Browser.msgBox( "i = 2 and i = 2" );
}
}
Soubor
If Then Else - praktické příklady - Excel VBA
ke stažení zdarma. Soubor využívá makra.
Tento článek je součástí on-line výukového kurzu VBA MS Excel.
Máte nějakou praktická ukázku jak používat podmínky ve VBA. Můžete zmínit v komentářích.
Článek byl aktualizován: 19.09.2020 11:07
Pomohl vám článek? Vyřešili jste problém? Můžete mě podpořit zakoupení tabulky (samozdřejmě čokoládové), když kafe nepiji ;) Odkaz na zakoupení čokolády. Za veškerou podporu vám děkuji a samozdřejmě jí využiji do zdokonalování a rozšířování webu.
Případně přidejte odkaz na vaši oblíbenou sociální síť, případně využijste hashtag #JakNaExcel .
Děkuji za váš čas a doufám, že jste nalezli odpověď na svůj problém.
Narazili jste v článku na nejasnost, chybu? Máte tip na vylepšení nebo doplnění článku? Budu rád pokud se zmínite v komentářích.
Microsoft Office (Word, Excel, Google tabulky, PowerPoint) se věnuji od roku 2000 (od dubna roku 2004 na této doméně) - V roce 2017 jsem od Microsoft získal prestižní ocenění MVP (zatím 8x za sebou). Své vědomosti a zkušenosti dávám k dispozici i on-line ve videích pro SEDUO. Ve firmách školím a konzultuji, učím na MUNI. Tento web již tvořím přes 20 let (o Excel píší přes 25). Zdarma je zde přes 1.500 návodu, tipů a triků, včetně přes 350 různých šablon, sešitů a přes 70 taháků v pdf.
Pomohl Vám návod? Sdílejte na Facebooku, G+ |
||
LinkedIn... |
Stránky o MS Office (Excel) produktu společnosti Microsoft. Neslouží jako technická podpora.
| Email na autora: pavel.lasak@gmail.com | Copyright © : Pavel Lasák 2004 - 2025 |