Inhoud

# Instructie Sub

Definieert een subprocedure.

### Syntaxis:

    [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

          {[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.

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.

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

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

##### fragment char

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

### 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

Verwante onderwerpen

Subroutines basics

Procedures, Functies of Eigenschappen gebruiken

Instructie Function

Instructie Property