Přeskočit navigaci | Přeskočit na novinky

Jste zde: Úvodní stránka » excel » vba-teorie-zaklady » if-then-elseif-else-podminka-excel-vba

Podmínky If, Then, ElseIf, Else

Videokurzy Excel

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

Proč podmínky?

Microsoft Excel logo

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:


Syntaxe If Then ElseIf Else

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é.

Operátory v Then Else

Použití porovnávací operátory:

  • Is
  • Like
  • <
  • >
  • >=
  • <=
  • <>
  • =
If Name Like "*obsahuje*" Then

Použití logické operátory:

  • And
  • Not
  • Or
  • Xor

Podrobněji v článku: Operátory VBA Excel

Podrobněji o operátoru Like v článku: Operátory Like v VBA Excel

If Then

jestliže ... pak

Nejednodušší větvení. Přeloženo do češtiny: jestliže ... pak.

Příklad

´jestliže je odpověď muž pak zobrazí zprávu. IF Odpoved = "muz" Then MsgBox "Jsi muž." End If

Příklad 2

Lze zapsat i do jednoho řádku:

If 8 > 2 Then MsgBox "8 Je větší než 2"

If Then Else

jestliže ... pak... jinak

Trochu složitější větvení. Odpovídá českému: jestliže, pak, jinak.

Příklad


´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

If Then ElseIf Else

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.

Příklad

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

Exit z If then

Jak opustit if then:

If Vek < 0 Then Exit Sub End If

Podrobněji v samostatném článku: Exit .

If Then s OR

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

If Then s AND

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

If Then s využitím On Error GoTo

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 :)"

If Then s Google Sheet

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" ); } }
Microsoft Excel VBA - stahuj logo

Ke stažení

Soubor If Then Else - praktické příklady - Excel VBA soubor ve formátu *.xlsm ke stažení zdarma. Soubor využívá makra.


Souvisejicí články s větvením:

Závěrem

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

Podpora - oceňte web a pozvěte mě na čokoládu

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 .

Poděkování

Děkuji za váš čas a doufám, že jste nalezli odpověď na svůj problém.

Vylepšení

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.


Pavel Lasák - autor webu

Pavel Lasák

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.

   Pavel Lasák LinkedIn Profil    Pavel Lasák twitter Profil





Sdílejte

Pomohl Vám návod?
Sdílejte na Facebooku, G+
LinkedIn...

Nové články


Reklama


TOPlist Licence Creative Commons webarchiv rss XML

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 |