Základy VBA
Zobrazení karty VBA
Sekce “Zobrazení karty VBA”Soubor → Možnosti (dole vlevo) → Přizpůsobit pás karet → Zakliknutí karty „Vývojář“ v pravé části.



Karta by měla být zobrazena na pásu karet. Pokud ne, je nutné zavřít všechny Excely a Excel znovu spustit.
Prostředí VBA
Sekce “Prostředí VBA”VBA (Visual Basic for Applications) je programovací jazyk, který umožňuje uživatelům automatizovat úkoly v aplikacích Microsoft Office, jako je Excel, Word, Access a další. V rámci Excelu se VBA používá k psaní makro instrukcí, které mohou automatizovat opakující se úkoly, zpracovávat data, vytvářet vlastní funkce nebo řídit interakci mezi různými listy a sešity.
Do VBE (Visual Basic Editor) se lze dostat přes kartu vývojář → Visual Basic.
(Pokud není karta zobrazená, je nutné pokračovat zobrazením karty VBA.)
Ve VBE se lze následně pohybovat v následujících částech:
- Pás karet
- Toolbar
- Prohlížeč projektů (Projects)
- Vlastnosti (Properties)
- Okno kódu
- Inmediate Window

Pás karet
Sekce “Pás karet”Pomocí pásu karet lze nastavit a upravovat VBE.

1. File – Tato sekce obsahuje základní příkazy pro práci s dokumenty ve VBE.

- Save (Uložit) – Uloží aktuální projekt.
- Export File (Exportovat soubor) – Umožňuje exportovat modul, třídu nebo formulář do souboru s příponou .bas, .cls, nebo .frm.
- Import File (Importovat soubor) – Umožňuje importovat soubor VBA (např. .bas, .cls, .frm) do aktuálního projektu.
- Remove modul – Odstraní existující modul, pokud se ve VBA nachází.
- Print (Tisk) – Tiskne obsah aktuálního modulu nebo formuláře.
- Close and Return to Microsoft Excel (Zavřít a vrátit se do aplikace Excel) – Zavře editor VBA.
2. Edit – Sekce pro úpravu kódu, kopírování, vkládání a navigaci.

- Undo Delete (Zpět) – Zruší poslední provedenou akci.
- Redo Typing (Znovu) – Opakuje zrušenou akci.
- Cut (Vyjmout) – Vyjme vybraný kód.
- Copy (Kopírovat) – Zkopíruje vybraný kód.
- Paste (Vložit) – Vloží vyjmutý nebo zkopírovaný kód.
- Select All (Vybrat vše) – Vybere celý obsah aktuálního modulu.
- Find (Najít) – Otevře dialog pro hledání textu v aktuálním modulu.
- Find next (Najít další) – Nalezne stejný výskyt v další části kódu modulu.
- Replace (Nahradit) – Otevře dialog pro nahrazení textu v aktuálním modulu.
- Indent (Zarovnání) – Odsazení kódu doprava.
- Outdent (Odsazení) – Opak Indent, odebere odsazení kódu (doleva).
3. View – Nástroje pro přizpůsobení zobrazení v editoru VBA.

- Code – Přepnutí do zobrazení kódu. Umožňuje psát a upravovat kód pro objekty (moduly, formuláře).
- Object – Zobrazení seznamu všech objektů v aktuálním souboru (moduly, formuláře). Umožňuje rychlý přechod mezi objekty.
- Immediate window – Zobrazení okna pro interaktivní testování kódu. Umožňuje okamžitý výpis hodnot a příkazy během běhu kódu.
- Watch Window (Sledování) – Sledování hodnot proměnných během ladění.
- Locals Window (Místní okno) – Zobrazuje všechny místní proměnné dostupné v aktuální proceduře. Užitečné pro ladění a analýzu hodnot proměnných v aktuálním běhu.
- Call Stack (Zásobník volání) – Zobrazuje historii volání funkcí a procedur. Pomáhá sledovat pořadí volání a trasování chyby.
- Toolbox – Obsahuje nástroje pro přidávání ovládacích prvků na uživatelský formulář (UserForm). Poskytuje ovládací prvky pro tvorbu UI.
- Properties Window – Zobrazení okna vlastností.
- Toolbars – Zobrazení jednotlivých prvků do sekce toolbar.
4. Insert – Pomocí těchto příkazů lze do projektu přidávat nové prvky.

- Module (Modul) – Vloží nový standardní modul, kde je možné psát procedury a funkce.
- Class Module (Třídní modul) – Vloží nový modul pro objektové programování pro definování tříd.
- UserForm (Uživatelský formulář) – Vloží nový uživatelský formulář pro interaktivní aplikace.
- Procedure (Procedura) – Vloží novou proceduru nebo funkci do aktuálního modulu.
5. Format – Nabízí nástroje pro úpravu vzhledu userformu (uživatelských formulářů).

- Align – Zarovnání
- Make same size (udělat stejnou velikost) – Nastavení velikosti více ovládacích prvků.
- Horizontal spacing – Nastavení horizontálních rozestupů mezi ovládacími prvky.
- Vertical spacing – Nastavení vertikálních rozestupů mezi ovládacími prvky.
- Center in form – Nastavení středového zarovnání ovládacích prvků.
- Arrange buttons – Uspořádání tlačítek dle určitého vzoru.
- Group – Seskupení prvků.
- Ungroup – Odseskupení prvků.
- Order – Pořadí vrstev ovládacích prvků.
6. Debug – Nástroje pro ladění kódu a hledání chyb.

- Compile VBA Project – Zkompiluje celý VBA projekt a zkontroluje chyby v kódu.
- Step Into (Krokování) – Krok po kroku provádí kód a umožňuje detailně sledovat jeho vykonávání.
- Step Over (Krok přes) – Krokování kódu, ale přeskočí volání funkcí.
- Step Out (Krok ven) – Pokračuje v provádění kódu až do návratu z aktuální funkce.
- Run to Cursor – Provádí kód až na místo, kde je umístěn kurzor.
- Add Watch (Sledování) – Umožňuje sledovat hodnoty proměnných nebo výrazů během ladění.
- Toggle Break (Pauza) – Vloží možnost pozastaví provádění kódu na aktuálním místě, což je užitečné pro ladění.
- Clear All Breakpoints – Odstraní všechny body přerušení kódu.
7. Run – Příkazy pro spuštění a testování kódu.

- Run (Spustit) – Spustí aktuální makro nebo proceduru.
- Break (Pauza) – Pozastaví provádění kódu na aktuálním místě, což je užitečné pro ladění.
- Reset (Obnovit) – Zastaví provádění aktuálního makra nebo procedury.
8. Tools – Nastavení a nástroje pro přizpůsobení prostředí VBE.

- References (Odkazy): Umožňuje přidávat nebo odebírat knihovny, které projekt využívá (např. Microsoft Scripting Runtime).
- Macros – Zobrazení všech maker.
- Options (Možnosti): Nastavení editoru VBA (např. chování při kompilování, formátování kódu).
9. Add-Ins
- Add-In Manager (Správce doplňků): Spravuje doplňky, které můžeš použít v editoru VBA.
10. Window – Možnosti pro správu oken v editoru.
11. Help – Nabízí přístup k nápovědě a dalším užitečným informacím.
Toolbars
Sekce “Toolbars”Slouží k rychlému přístupu k nejběžnějším funkcím a nástrojům. Umožňují ti snadno provádět úkoly bez potřeby hledat příkazy v nabídkách nebo kartách. Nástrojové lišty obsahují ikony, které reprezentují různé příkazy nebo nástroje. Existují 3 Toolbary:
- Debug

- Edit

- Standard

Jednotlivé ikony zobrazují argumenty popsány v sekci pás karet, tedy možnosti jako spuštění makra, stoupení do makra, zarovnání a další, akorát jsou zobrazeny v ikonách.
Projekty
Sekce “Projekty”- Prohlížeč projektů (Project Explorer) – Všechny otevřené Excelovské sešity a jejich objekty.

Při kliknutí na daný objekt (list, Excel) se v sekci vlastností (properties) budou ukazovat vlastnosti daného objektu.
Properties
Sekce “Properties”Okno zobrazuje a umožňuje úpravu vlastností vybraného objektu v projektu. Okno je užitečné při práci s formuláři (UserForms) a ovládacími prvky, protože poskytuje přehled všech nastavení daného objektu.
- Vlastnosti objektu – Zobrazuje seznam vlastností vybraného objektu.
- Úpravy vlastností – Umožňuje uživateli změnit hodnoty těchto vlastností přímo v okně, což ovlivní chování a vzhled objektu.
- Přehled všech vlastností – V okně Properties je zobrazeno veškeré nastavení objektu, což usnadňuje přizpůsobení jeho chování a vzhledu bez potřeby psaní kódu.
Lze ale upravovat i vlastnosti jednotlivých listů či modulů. Pokud je kliknuto na list, je zde možné nastavit zejména viditelnost daného listu v Excelu, zdali má být vůbec možné ho v Excel prostředí zobrazit, nebo ho lze zobrazit pouze pomocí VBE.

Okno kódu
Sekce “Okno kódu”Hlavní okno, ve kterém uživatel píše, upravuje a zobrazuje kód.

Inmediate window
Sekce “Inmediate window”Okno umožňuje interaktivní komunikaci s kódem během jeho provádění. Toto okno je užitečné pro testování výrazů, zobrazení hodnot, které jsou uloženy v proměnných pro případné debuggování.

Základy VBA
Sekce “Základy VBA”Ve VBA je struktura kódu organizována do několika hlavních komponent. Základními prvky jsou moduly, procedury a funkce.
Moduly
Sekce “Moduly”Moduly jsou soubory, které obsahují kód v VBA. Můžou obsahovat jak procedury, tak i funkce.
Ve VBE se moduly obvykle zobrazují v Project Explorer a jsou organizovány podle typu: Standard Module, Class Module, UserForm a další.
Moduly slouží jako kontejner pro kód, který můžete použít v celém projektu, což znamená, že funkce nebo procedury definované v modulu mohou být volány i z jiných modulů.
Procedury
Sekce “Procedury”Procedura je blok kódu, který vykonává určitý úkol. Nevrací žádnou hodnotu.
V VBA existují dva hlavní typy procedur:
Subprocedury (Sub) – Základní bloky kódu, které provádějí akce, ale nevrací hodnoty.
Sub PrvniProcedura()
MsgBox „Hello world!“
End Sub
Event Procedures – Speciální typy procedur, které jsou spouštěny událostmi, jako jsou kliknutí na tlačítko nebo změny v buňkách. Jsou specifické pro UserForm nebo Workbook/Worksheet objekty.
Funkce
Sekce “Funkce”Funkce je podobná proceduře, ale na rozdíl od ní vrací hodnotu.
Funkce se používají k výpočtům nebo k získávání hodnot z dat a mohou být volány uvnitř kódu, ale přímo i v Excelu (mimo VBA) jako uživatelsky definované funkce do jednotlivých buněk, stejně jako volání klasických funkcí v Excelu.
Funkce může mít vstupní parametry a vracet výsledky pomocí příkazu Return nebo Exit Function.
Function VratSoucet(a As Integer, b As Integer) As Integer
VratSoucet = a + b
End Function
Proměnné & Datové typy
Sekce “Proměnné & Datové typy”Proměnné jsou oblasti, kde jsou ukládány hodnoty, které se mohou v průběhu kódu měnit. Jméno proměnné se vždy zadává před rovnítko daného kódu a lze nastavit libovolný název, který však musí být jednoslovný:
Prvni_Promenna = 1
Datové typy určují, jaký typ hodnoty může proměnná uchovávat.
Deklarace proměnných
Sekce “Deklarace proměnných”Proměnné je potřeba deklarovat pomocí klíčového slova Dim. Ne všechny proměnné je nutné v kódu deklarovat, VBA dokáže pracovat s proměnnými i mimo deklarování (s výjimkou proměnných, ve kterých je objekt listu nebo Excelu a dalších). Pro úplnost a správnost by se však každá proměnná deklarovat měla.
Dim [název proměnné] AS [datový typ]
Datové typy
Sekce “Datové typy”- Integer – Celá čísla (-10, 0, 5).
- Long – Větší celá čísla (123 456 789 123 123.
- Double – Reálná čísla s desetinnou tečkou (3.14).
- String – Textové řetězce („Ahoj“).
- Boolean – Binární hodnoty True nebo False.
- Variant – Univerzální datový typ, který může obsahovat jakýkoliv jiný datový typ (nejvíce flexibilní, ale náročný na paměť).
- Object – Používá se pro proměnné, které odkazují na objekty, jako jsou formuláře, buňky nebo aplikace.
- Date – Datum a čas.
- Range – Oblast buněk.
- Worksheet – List Excelu.
- Workbook – Sešit Excelu.
Operátory
Sekce “Operátory”Operátory se ve VBA používají k výpočtům, porovnávání a manipulaci s daty. Syntaxe určuje specifická pravidla, jakým způsobem se kód musí psát, aby byl správně interpretován.
Aritmetické operátory
Sekce “Aritmetické operátory”- + (sčítání)
- – (odčítání)
- * (násobení)
- / (dělení)
- Mod (zbytek po dělení) – Používá se k získání zbytku po dělení.
Porovnávací operátory
Sekce “Porovnávací operátory”- = (rovná se) – Porovnává hodnoty, zda jsou stejné.
- <> (nerovná se) – Porovnává hodnoty, zda nejsou stejné.
- < (menší než), > (větší než) – Porovnávají, zda je jedna hodnota menší nebo větší než druhá.
- <= (menší nebo rovno), >= (větší nebo rovno) – Porovnávají, zda je jedna hodnota menší nebo rovna, nebo větší nebo rovna než druhá.
Logické operátory
Sekce “Logické operátory”- And – Vráti True, pokud jsou všechny podmínky pravdivé.
- Or – Vráti True, pokud alespoň jedna podmínka je pravdivá.
- Not – Neguje logickou hodnotu, tedy mění True na False a naopak.
Komentáře
Sekce “Komentáře”Komentáře jsou textové řádky v kódu, které slouží pouze pro vysvětlení a dokumentaci kódu, aby bylo pro ostatní (nebo pro autora kódu) snazší pochopit, co kód dělá.
Ve VBA začíná komentář apostrofem (‚). Komentáře mohou být na samostatném řádku nebo na konci řádku s kódem, nikdy však na začátku před kódem, jelikož tím by byl samotný kód zakomentován.
‚ Toto je samotný komentář
x = 10 ‚ Toto je komentář na konci řádku
Komentáře usnadňují čitelnost nebo mohou být použity k označení důležitých míst v kódu nebo k upozornění na možné problémy. Komentáře navíc umožňují dočasně zakomentovat části kódu, které mají být dočasně deaktivovány při debuggování nebo testování. Navíc zlepšují udržovatelnost kódu, ale samotný kód neovlivňují, takže je lze bezpečně používat bez vlivu na běh programu.
Formátování
Sekce “Formátování”Pro jednoduchost kódu je uváděna oblast pouze u prvního příkladu, je však nutná všude, tím je myšlena oblast např. jako Range(„A1“)
Formátování písma
Sekce “Formátování písma”Range(„A1“). Font.Bold = True – Tučné písmo pro danou buňku. .Font.Bold = False – Odstranění tučného formátování. .Font.Italic = True – Písmo kurzívou. .Font.Underline = True – Podtržené písmo. . Font.Strikethrough = True – Přeškrtnutý Text. . Font.Size = „14“ – Nastavení velikosti písma. . Font.Name = „Calibri“ – Změna fontu písma. . Font.Color = vbRed – Nastavení barvy za pomocí defaultních barev. . Font.Color = RGB(125, 65, 58) – Změna barvy odstíny červené, zelené a modré (RGB) . Font.ColorIndex = 5 – Změna barvy za pomocí indexu barev.
Formátování výplně
Sekce “Formátování výplně”.Interior.Color = vbRed – Změna barvy za pomocí výchozích barev. .Interior.ColorIndex = 5 – Změna barvy za pomocí odstínů. .Interior.Color = RGB(125, 65, 58) – Změna bary za pomocí indexu.
Ohraničení buňky
Sekce “Ohraničení buňky”.Borders = RGB(0, 0, 0) – Všechno ohraničení černou barvou za pomocí RGB. .Borders.LineStyle = xlContinuous – Druhá metoda veškerého ohraničení. .Borders(xlEdgeTop).LineStyle = xlContinuous – Horní ohraničení. .Borders(xlEdgeBottom).LineStyle = xlContinuous – Dolní ohraničení..Borders(xlEdgeLeft).LineStyle = xlContinuous – Levé ohraničení..Borders(xlEdgeRight).LineStyle = xlContinuous – Pravé ohraničení.
.Borders.LineStyle = xlDash – Čárkované ohraničení..Borders.LineStyle = xlDot – Tečkované ohraničení..Borders.LineStyle = xlDouble – Dvojité ohraničení.
.Borders.Weight = xlThin – Minimální tloušťka ohraničení..Borders.Weight = xlMedium – Střední tloušťka ohraničení. .Borders.Weight = xlThick – Hrubá tloušťka ohraničení
.Borders.Linestyle = xlNone – Žádné ohraničení. .ClearFormats – Odstranění veškerého formátování buňky.
Používání “With”
Sekce “Používání “With””Příkaz With se používá pro více parametrů ohraničení, formátování nebo dalších příkazů společnou pro určitou oblast.
With Range(„A1“).Borders
.LineStyle = xlContinuous
.Weight = xlMedium
.Color = RGB(45, 120, 185)
End With
Změna velikosti buněk
Sekce “Změna velikosti buněk”Columns(„A“).ColumnWidth = 15 – Nastavení šířky sloupce. Rows(1).RowHeight = 30 – Nastavení výšky 1. řádku. Columns(„A“).Autofit – Automatické nastavení šířky dle délky nejdelšího textu v buňce.
Zarovnání textu v buňce
Sekce “Zarovnání textu v buňce”.HorizontalAlignment = xlCenter – Vodorovné zarovnání na střed. .HorizontalAlignment = xlLeft – Vodorovné zarovnání doleva. .HorizontalAlignment = xlRight – Vodorovné zarovnání doprava.
.VerticalAlignment = xlCenter – Svislé zarovnání na střed..VerticalAlignment = xlLeft – Svislé zarovnání doleva..VerticalAlignment = xlRight – Svislé zarovnání doprava.
.WrapText = True – Zalomení textu.
Záznamník makra
Sekce “Záznamník makra”V Excelu je možné nahrát manuální práci, která je v Excelu provedena a každé kliknutí v Excelu bude automaticky převedeno na makro. Je tedy možné vytvořit makro bez jakékoliv znalosti VBA. Pomocí záznamníku lze nahrávat jakoukoliv práci v Excelu, nicméně vytvořený kód nebude dynamický. Dynamický kód znamená, že v případě, že má makro automaticky pracovat v dalším spuštění s více daty, nebude to pomocí záznamníku možné a bude pracovat pouze s nahranou oblastí.
Je možné nahrát i pouze část operace a následně daný kód upravit dle vlastních potřeb.
Možné použití záznamníku
Sekce “Možné použití záznamníku”- Kopírování a vkládání dat
- Filtrování dat
- Tvorba kontingenční tabulky
- Tvorba grafu
- Formátování buněk
Obecně lze záznamníkem zaznamenat jakoukoliv práci v Excelu, některé části však nejsou prakticky použitelné a vždy bude nutné je ve VBA modifikovat.
Jak makro zaznamenat
Sekce “Jak makro zaznamenat”Makro lze zaznamenat na kartě developer (vývojář) pomocí stisknutí „zaznamenat makro“ v sekci „kód“.

Po stisknutí tlačítka stačí provést danou operaci manuálně v Excelu a makro bude nahráno. Následně stačí zmáčknout tlačítko „Zastavit záznam“ na stejné pozici, kde bylo tlačítko „zaznamenat makro“.

Proces nahrání makra
Sekce “Proces nahrání makra”Pro následující nahrání budou použita následující data, která budou zkopírována ze sloupce „A“ do sloupce „B“.

-
Stisknutí tlačítka „zaznamenat makro“. Následně se zobrazí dialogové okno:

a. Název Makra – Vlastní název makra, které budou zobrazeno za příkazem „Sub“ ve VBA.
b. Klávesová zkratka – Je možné nastavit klávesovou zkratku, díky které bude makro po nahrání automaticky spuštěno při stisknutí dané klávesové zkratky. Klávesová zkratka bude vždy začínat klávesou „CTRL“, která nejde změnit. Následně je možné zmáčknout jakoukoliv klávesu na klávesnici nebo kombinaci kláves, např SHIFT + Q. Makro po nahrání by pak následně šlo spustit pomocí stisknutí klávesové zkratky CTRL + SHIFT + Q bez nutnosti zapínat visual basic. Je vhodné vybírat klávesovou zkratku, která není využívána na jinou práci v Excelu. Např. klávesová zkratka CTRL + C není vhodná, jelikož slouží ke kopírování dat v Excelu. Klávesová zkratky nemusí být nastavena.
c. Uložit makro do – kde má být makro uloženo. Je možné vybrat z následujících možností:
- Tento sešit – Makro bude uloženo v aktivním Excelu, ve kterém má být nahráván proces.
- Nový sešit – Makro bude uloženo do kompletně nového Excelu.
- Osobní sešit maker – Makro bude uloženo do osobního sešitu maker, což je speciální soubor s příponou .xlsb, kde je možné ukládat veškeré uložená makra, ke kterým bude možné se jednoduše dostat a mít je na jednom místě.
d. Popis – Volitelná možnost. Slouží k popisu, co nahrané makro dělá, aby uživatel nezapomněl, na co bylo makro vytvořeno. Popis bude následně zobrazen ve VBA jako komentář.
Nastavené makro by mohlo vypadat následovně:

-
Manuální označení oblasti
-
Zkopírování oblasti pomocí CTRL + C
-
Kliknutí do buňky B1
-
Vložení kopírované oblasti pomocí CTRL + V
-
Stisknutí tlačítka „zastavit záznam.


© 2026 Excelland
