Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Een Sub
-procedure is een reeks Visual Basic-instructies die zijn ingesloten tussen de Sub
- en End Sub
-instructies. De Sub
procedure voert een taak uit en retourneert vervolgens de controle naar de aanroepende code, maar retourneert geen waarde aan de aanroepende code.
Telkens wanneer de procedure wordt aangeroepen, worden de instructies uitgevoerd, beginnend met de eerste uitvoerbare instructie na de Sub
instructie en eindigend met de eerste End Sub
, Exit Sub
of Return
instructie aangetroffen.
U kunt een Sub
procedure definiëren in modules, klassen en structuren. Standaard is het Public
, wat betekent dat het op elke locatie in uw toepassing kan worden aangeroepen die toegang heeft tot de module, klasse of structuur waarin u het hebt gedefinieerd. De term methode beschrijft een Sub
of Function
procedure die toegankelijk is van buiten zijn module, klasse of structuur waarin het is gedefinieerd. Zie Proceduresvoor meer informatie.
Een Sub
procedure kan argumenten aannemen, zoals constanten, variabelen of expressies, die worden doorgegeven door de aanroepende code.
Syntaxis van declaratie
De syntaxis voor het declareren van een Sub
procedure is als volgt:
[modifiers] Sub SubName[(parameterList)]
' Statements of the Sub procedure.
End Sub
Het modifiers
kan toegangsniveau en informatie over overbelasting, overschrijven, delen en schaduw opgeven. Zie Subverklaring voor meer informatie.
Parameterdeclaratie
U declareert elke procedureparameter op dezelfde manier als de manier waarop u een variabele declareert, waarbij u de parameternaam en het gegevenstype opgeeft. U kunt ook het doorgegeven mechanisme opgeven en of de parameter optioneel is of een parametermatrix.
De syntaxis voor elke parameter in de lijst met parameters is als volgt:
[Optional] [ByVal | ByRef] [ParamArray] parameterName As DataType
Als de parameter optioneel is, moet u ook een standaardwaarde opgeven als onderdeel van de declaratie. De syntaxis voor het opgeven van een standaardwaarde is als volgt:
Optional [ByVal | ByRef] parameterName As DataType = defaultValue
Parameters als lokale variabelen
Wanneer het besturingselement wordt doorgegeven aan de procedure, wordt elke parameter behandeld als een lokale variabele. Dit betekent dat de levensduur hetzelfde is als die van de procedure en dat het bereik ervan de hele procedure is.
Aanroepingssyntaxis
U roept een Sub
procedure expliciet aan met een zelfstandige aanroepinstructie. U kunt het niet aanroepen door de naam in een expressie te gebruiken. U moet waarden opgeven voor alle argumenten die niet optioneel zijn en u moet de lijst met argumenten tussen haakjes insluiten. Als er geen argumenten worden opgegeven, kunt u eventueel de haakjes weglaten. Het gebruik van het Call
trefwoord is optioneel, maar wordt niet aanbevolen.
De syntaxis voor een aanroep naar een Sub
procedure is als volgt:
[Call] SubName[(argumentlist)]
U kunt een Sub
methode aanroepen van buiten de klasse die deze definieert. Eerst moet u het New
trefwoord gebruiken om een exemplaar van de klasse te maken of een methode aanroepen die een exemplaar van de klasse retourneert. Zie Nieuwe operator voor meer informatie. Vervolgens kunt u de volgende syntaxis gebruiken om de Sub
methode voor het exemplaarobject aan te roepen:
object.MethodName[(argumentList)]
Afbeelding van verklaring en aanroep
De volgende Sub
procedure vertelt de computeroperator welke taak de toepassing gaat uitvoeren en geeft ook een tijdstempel weer. In plaats van deze code aan het begin van elke taak te dupliceren, roept tellOperator
de toepassing alleen aan vanaf verschillende locaties. Elke aanroep geeft een tekenreeks door in het task
argument waarmee de taak wordt geïdentificeerd die wordt gestart.
Sub tellOperator(ByVal task As String)
Dim stamp As Date
stamp = TimeOfDay()
MsgBox("Starting " & task & " at " & CStr(stamp))
End Sub
In het volgende voorbeeld ziet u een typische aanroep naar tellOperator
.
tellOperator("file update")