K usnadnění automatizace opakujících se úkolů se v Excelu používají **Makra** (ve VBA označovány jako `Sub` - z anglického subroutine (podprogram)). Tyto makra představují sadu instrukcí a kódu, které počítač při spuštění makra splní.

```
'Ukázka kódu nadefinovaného makra
Sub <název_makra>()
    'Na toto místo patří kód makra
End Sub
```

## Vytvoření Makra

1. Otevřete nový prázdný dokument v Excelu
2. Zvolte kartu `Vývojář`
3. Stiskněte tlačítko `Makra` nacházející se na levé straně karty
4. Zadejte název vašeho makra do pole `Název makra` - Například ```MojeMakro```. Při vytváření názvu nikdy nepoužívejte české znaky, protože by to mohlo způsobovat problémy.
5. Stiskněte tlačítko `Vytvořit`

Po dokončení kroku 5 se otevře Microsoft VBA Editor s novým modulem obsahující definici vámi pojmenovaného makra, například: 

```
Sub MojeMakro()
    
End Sub
```

## Spuštění makra

Makro se dá spustit několika způsoby:
V editoru VBA stačí stisknout tlačítko spustit (`Run Sub/UserForm`) se zelenou šipkou nebo stisknout (s kurzorem na pozici v daném makru) klávesu `F5`.

Z programu Excel:
1. Vyberte kartu `Vývojář` a stiskněte tlačítko `Makra`

<img src="media/01-01-makra_tlacitko.gif" alt="Tlačítko makra na kartě vývojáře" class="m-auto">

<!-- ![Tlačítko makra na kartě vývojáře](media/01-01-makra_tlacitko.gif) -->

2. Vyberte vaše makro ze seznamu
3. Klikněte na tlačítko `Spustit`

Po spuštění makra proběhne zavolání makra, následně se provedou všechny příkazy, které jsou v rámci makra napsané. Tyto příkazy ovlivňují dokument Excelu postupně od vrchního příkazu po nejspodnější příkaz. Po dokončení posledního příkazu se nic nestane.

![Diagram způsobu fungování makra](media/01-01-makra-diagram_makra.png)

<p class="text-center">Diagram způsobu fungování makra</p>

## Uložení maker

Ukládání souboru do normálního excel dokumentu `Sešit Excelu` (.xls) způsobí, že vytvořená makra se v souboru neuloží. K uložení dokumentu včetně maker je potřeba soubor uložit jako typ `Sešit Excelu s podporou maker` (.xlsm).

![Alt text](media/01-01-makra_ulozeni_makra.png)

### [Příklad] "Zdravím, světe!"

*Zadání:* Vytvořte nové makro s názvem MojeMakro a vložte do něj příkaz, který při spuštění makra zobrazí zprávu "Zdravím, světe!" v dialogovém okně.

*Řešení:*
```
Sub MojeMakro()
    ' Kod makra
    MsgBox ("Zdravím, světe!")
End Sub
```

*Výsledek:*

![Výsledek příkladu](media/01-01-makra_vysledek_priklad.png)

