/ / Excel VBA-functie en sub

Excel VBA-functie en sub

Functie | Sub

Het verschil tussen een functie en een sub in Excel VBA is dat een functie een waarde kan retourneren terwijl een sub dat niet kan. Functies en subs worden erg handig naarmate het programma groter wordt.

Functie

Als u wilt dat Excel VBA een taak uitvoert dieretourneert een resultaat, u kunt een functie gebruiken. Plaats een functie in een module (Klik in de Visual Basic-editor op Invoegen, Module). Bijvoorbeeld de functie met naam Gebied.

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

Area = x * y

End Function

Uitleg: Deze functie heeft twee argumenten (van het type Dubbel) en een retourtype (het gedeelte na Als ook van het type Dubbel). U kunt de naam van de functie (gebied) in uw code gebruiken om aan te geven welk resultaat u wilt retourneren (hier x * y).

Je kunt nu naar deze functie verwijzen (met andere woorden de functie oproepen) van ergens anders in je code door simpelweg de naam van de functie te gebruiken en een waarde voor elk argument te geven.

Plaats een opdrachtknop op uw werkblad en voeg de volgende coderegels toe:

Dim z As Double

z = Area(3, 5) + 2

MsgBox z

Uitleg: De functie retourneert een waarde, dus u moet deze waarde "vangen" in uw code. U kunt hiervoor een andere variabele (z) gebruiken. Vervolgens kunt u een andere waarde aan deze variabele toevoegen (als u dat wilt). Tenslotte geeft u de waarde weer met een MsgBox.

Resultaat wanneer u op de opdrachtknop op het blad klikt:

Excel VBA-functie Resultaat

Sub

Als u wilt dat Excel VBA sommige acties uitvoert, kunt u een sub gebruiken. Plaats een sub in een module (Klik in de Visual Basic-editor op Invoegen, Module). Bijvoorbeeld de sub met de naam Area.

Sub Area(x As Double, y As Double)

MsgBox x * y

End Sub

Uitleg: Deze sub heeft twee argumenten (van het type Double). Het heeft geen retourtype! Je kunt naar deze sub verwijzen (de sub oproepen) van ergens anders in je code door simpelweg de naam van de sub te gebruiken en een waarde voor elk argument te geven.

Plaats een opdrachtknop op uw werkblad en voeg de volgende coderegel toe:

Area 3, 5

Resultaat wanneer u op de opdrachtknop op het blad klikt:

Excel VBA subresultaat

Zie je het verschil tussen de functieen de sub? De functie retourneerde de waarde 15. We hebben de waarde 2 aan dit resultaat toegevoegd en het eindresultaat weergegeven. Toen we de sub noemden hadden we geen controle over het resultaat (15) omdat een sub geen waarde kan teruggeven!

Lees ook: