Úvod do programování Visual Basic for Applications
Publikováno: 4.6.2017

Úvod do jazyku Visual Basic for Applications, Editor VBA pro psaní kódu, procedury Function a Sub v praxi
- editor VBA
- Sub
- Function
Visual Basic for Applications je programovací jazyk, který se zapisuje do takzvaných procedur. Procedura je kus kódu ve formě makra nebo funkce.
Procedura Sub
Prvním typem procedury je makro, které je uvozeno klíčovými příkazy Sub a End Sub. Makro může být nahráno prostřednictvím Záznamníku makra nebo napsáno jazykem VBA v Editoru VBA. Procedura Sub vykonává posloupnost příkazů, která však nevrací žádnou hodnotu.
Sub NazevMakra()
příkazy
End Sub
Procedura Function
Druhým typem procedury je funkce, která na rozdíl od makra vrací hodnotu a vyžaduje vložení jednoho nebo více argumentů. Funkce je uvozena klíčovými příkazy Function a End Function.
Function NazevFunkce(argument_1, argument_2)
příkazy
End Function
Editor VBA
Editor VBA slouží pro psaní kódu jazyka VBA, který vyvoláte klávesovou zkratkou Alt + F11 nebo na kartě Vývojář tlačítekm Visual Basic.
K rozšiřování znalostí doporučuji Nápovědu VBA, která je součástí Editoru. Nápovědu najdete v nabídce Help nebo jí vyvoláte klávesou F1.
Editor je standardně rozdělen do 4 oken:
- Project explorer neboli Průzkumník projektů, který obsahuje otevřené projekty
- okno Properties obsahuje vlastnosti daného projektu
- okno pro psaní kódu jazyka VBA vyvoláte poklepáním na modul List/Module v Project explorer
- okno Immediate slouží pro okamžitý výpis a ladění zapsaného makra prostřednictvím příkazu Debug.Print

Pokud některé z oken na obrázku nevidíte použijte nabídku View.
Procedury v praxi
Na jednoduchém příkladě, který simuluje textovou funkci CONCATENATE(), jsou demonstrovány oba typy procedur Sub a Function.
Funkce CONCATENATE() spojuje textové řetězce v jeden.
Dejme tomu, že sloupce A, B a C obsahují textové řetězce, které chceme spojit v jeden řetězec a vložit mezi ně mezeru.
Procedura Function
Vytvořenou funkci zapisujeme do libovolné buňky v listě sešitu. Naše funkce obsahuje 3 argumenty, tj. pro každý sloupec jeden
Function Spojit(A As String, B As String, C As String) As String
Spojit = A & " " & B & " " & C
End Function
Výsledkem funkce je spojení slov

Procedura Sub
Procedura Sub vypíše spojený textový řetězec v dialogovém okně. Do proměnných A, B a C jsou načteny hodnoty v buňkách A1, B1 a C1.
Do kódu doporučuji zapisovat komentáře, které usnadňují orientaci v kódu. Označují se apostrofem na začátku komentáře.
Sub Spojit()
deklarace proměnných
Dim A As String, B As String, C As String
naplnění proměnných hodnotami v buňkách A1, B1 a C1
A = Cells(1, 1).Value
B = Cells(1, 2).Value
C = Cells(1, 3).Value
vypsání výsledku v dialogovém okně
MsgBox A & " " & B & " " & C
End Sub
Výsledkem procedury pak je

