/ / Excel VBA Function a Sub

Funkce Excel VBA a Sub

Funkce | Sub

Rozdíl mezi a funkce a a sub v Excel VBA je, že funkce může vrátit hodnotu, zatímco sub nemůže. Funkce a subsystémy jsou velmi užitečné, protože velikost programu se zvyšuje.

Funkce

Pokud chcete aplikaci Excel VBA provést úkolvrátí výsledek, můžete použít funkci. Umístěte funkci do modulu (V editoru jazyka klepněte na tlačítko Vložit, modul). Například funkce s názvem Oblast.

Function Area(x As Double, y As Double) As Double

Area = x * y

End Function

Vysvětlení: Tato funkce má dva argumenty (typu Double) a návratový typ (část za As také typu Double). Můžete použít název funkce (Oblast) ve svém kódu, abyste označili výsledek, který chcete vrátit (zde x * y).

Nyní můžete tuto funkci (jinými slovy volat funkci) odkazovat odjinud ve vašem kódu tím, že jednoduše použijete název funkce a přidáte hodnotu pro každý argument.

Umístěte na pracovní list příkazové tlačítko a přidejte následující řádky kódu:

Dim z As Double

z = Area(3, 5) + 2

MsgBox z

Vysvětlení: Funkce vrátí hodnotu, takže musíte tuto hodnotu zachytit ve svém kódu. Pro tuto možnost můžete použít jinou proměnnou (z). Dále můžete k této proměnné přidat další hodnotu (pokud chcete). Nakonec zobrazení hodnoty pomocí MsgBox.

Výsledek po klepnutí na příkazové tlačítko na listu:

Výsledek funkce Excel VBA

Sub

Pokud chcete aplikaci Excel VBA provádět některé akce, můžete použít sub. Umístěte díl do modulu (V editoru jazyka klepněte na tlačítko Vložit, modul). Například submenu s názvem Oblast.

Sub Area(x As Double, y As Double)

MsgBox x * y

End Sub

Vysvětlení: Tento díl má dva argumenty (typu Double). Nemá návratový typ! Můžete se obrátit na tento díl (volat pod) odjinud ve vašem kódu prostým použitím názvu dílčího a dáváte hodnotu pro každý argument.

Položte příkazové tlačítko na pracovní list a přidejte následující řádek:

Area 3, 5

Výsledek po klepnutí na příkazové tlačítko na listu:

Excel VBA Sub Result

Vidíte rozdíl mezi funkcía sub? Funkce vrátila hodnotu 15. Do tohoto výsledku jsme přidali hodnotu 2 a zobrazili konečný výsledek. Když jsme nazvali sub, neměli jsme nad výsledkem (15) větší kontrolu nad tím, protože sub nemůže vrátit hodnotu!

Také si přečtěte: