Instructie Sub

Definieert een subprocedure.

Syntaxis:

Diagram instructie Sub


[Private | Public] Sub name[(argument1 [As typename][, argument2[char][,...]])]
    ' instructies
    [Exit Sub]
    ' instructies
End Sub

Parameters:

naam: Naam van de subroutine.

arguments: Optionele parameters die u wilt doorgeven aan de subroutine.

fragment argument

fragment argument


      {[Optional [ByRef|ByVal]]|ParamArray} argument {{As typename|char}[ = expression]|[()]As Variant}
    
Parameters

Optioneel: Het argument is niet verplicht.

ByRef: Het argument wordt op referentie doorgegeven. ByRef is de standaardwaarde.

ByVal: De waarde wordt meegegeven. Deze waarde kan door de aangeroepen routine worden gewijzigd.

char: Het teken voor de declaratie van het type.

typename: Naam van het primitieve datatype. U kunt ook types specificeren die in bibliotheken en modules zijn gedefinieerd.

= expression: Specificeer een standaardwaarde die overeenkomt met het type. Als u een standaardwaarde voor een argument specificeert, dan is het logisch dat het argument optioneel is.

ParamArray: Gebruik ParamArray als het aantal parameters niet bekend is. Een voorbeeld hiervan is een door de gebruiker gedefinieerde functie in Calc. Als het argument ParamArray gebruikt wordt dan zou het altijd het laatste genoemde argument van de routine moeten zijn.

tip

Bij het gebruik van ParamArray of = expression is het verplicht dat Option Compatible wordt gebruikt in de code van de module voor het uitvoerbare gedeelte van de code.


warning

Bij het gebruik van Option VBASupport 1, Optional worden argumenten zonder standaardwaarde (= expression) geïnitialiseerd op grond van hun gegevenstype, m.u.v het type Variant.


fragment typename

fragment primitieve gegevenstypes


      {Boolean|Byte|Currency|Date|Double|Integer|Long|Object|Single|String|Variant}
    
fragment char

Tekens voor declaratie type


      { % | & | ! | # | $ | @ }
    

Voorbeelden:


Sub ExampleExit
Dim sReturn As String
Dim sListArray(10) As String
Dim siStep As Single
    For siStap = 0 To 10 ' Array vullen met testgegevens
        sListArray(siStep) = chr$(siStep + 65)
        MsgBox sListArray(siStep)
    Next siStep
    sReturn = LinSearch(sListArray(), "B")
    Print sReturn
End Sub
 
Function LinSearch( sList(), sItem As String ) As Integer
Dim iCount As Integer
' LijstZoek zoekt in een TekstArray:sLijst() naar een TekstItem:
' Teruggegeven waarde is de index van het item, of 0 (Nul)
    For iCount=1 To Ubound( sList() )
        If sList( iCount ) = sItem Then
            Exit For ' sItem gevonden
        End If
    Next iCount
    If iCount = Ubound( sList() ) Then iCount = 0
    LinSearch = iCount
End Function

Help ons, alstublieft!