Edukiak
Indizea 🔎︎

# Sub instrukzioa

Azpierrutina bat definitzen du.

Sub, Function eta Property instrukzioak antzeko metodoak dira, bereizketarik gabeak. Parametroak erreferentzien bidez jasotzen dituzte eta haiek aldatu ditzakete itzultzeko. LibreOffice Basic konpilatzaileak elkarren ordez erabiltzeko moduan onartzen ditu haien argumentuak.

### Sintaxia:

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

### Parametroak:

Izena: Azpierrutinaren izena.

argumentuak: Azpierrutinari pasatuko zaizkion aukerako parametroak.

##### argumentu-zatia

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

##### Parametroak

Optional: Argumentua ez da derrigorrezkoa.

ByRef: Argumentua erreferentzia gisa pasatzen da. ByRef da aukera lehenetsia.

ByVal: Argumentua balio gisa pasatzen da. Balio hori deitutako errutinak soilik aldatu dezake.

char: Mota deklaratzeko karakterea.

motaizena: Jatorrizko datu-moten izena. Liburutegiekin edo moduluekin definitutako motak ere zehaztu daitezke.

= expression: Zehaztu balio lehenetsi bat argumenturako. Deklaratutako motarekin bat egin behar dy. Optional erabiltzea beharrezkoa da balio lehenetsi bat zehazten duen argumentu bakoitzerako.

ParamArray: Erabili ParamArray parametro kopurua zehaztu gabe dagoenean. Egoera tipiko bat erabiltzaileak definitutako Calc funtzioak dira. ParamArray erabiltzea errutina baten azken argumentura mugatu beharko litzateke.

ParamArray edo = expression erabiltzeko, Option Compatible kokatu behar da moduluaren programa-kode exekutagarriaren aurrean.

Option VBASupport 1 erabiltzean, balio lehenetsirik gabeko (= expression) Optional argumentuak beren datu motaren arabera hasieratzen dira, Variant kasuan salbu.

##### motaizena zatia

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

##### karaktere-zatia

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

### Adibideak:

    Sub ExampleExit
    Dim sReturn As String
    Dim sListArray(10) As String
    Dim siStep As Single
        For siUrratsa = 0 to 10 ' Bete matrizea probako datuekin
            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
    ' Linsearch funtzioak TextEntry testua bilatzen du TextArray:sList() zerrendan:
    ' Itzulera-balioa sarrerako indizea edo 0 (Null) da
        For iCount=1 To Ubound( sList() )
            If sList( iCount ) = sItem Then
                Exit For ' sElementua aurkituta
            End If
        Next iCount
        If iCount = Ubound( sList() ) Then iCount = 0
        LinSearch = iCount
    End Function