Vsebina
Kazalo 🔎︎

# Ukaz Sub

Definira podprogram.

Ukazi Sub, Function ali Property so podobne metode, brez razlike. Prejemajo parametre po sklicu, kar omogoča njihovo spreminjanje. Prevajalnik LibreOffice Basic sprejema izmenično uporabo njihove skladnje argumentov.

### Skladnja:

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

### Parametri:

Ime: ime podprograma.

Argumenti: neobvezni parametri, ki jih želite posredovati podprogramu.

##### Fragment argumenta

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

##### Parametri

Optional: argument ni obvezen.

ByRef: argument je podan po sklicu. ByRef je privzeta vrednost.

ByVal: argument je podan z vrednostjo. Njegovo vrednost lahko klicana rutina spremeni.

znak-vrste: znak za deklaracijo vrste.

ime-vrste: ime vrste primitivnih podatkov. Določite ga lahko tudi v knjižnici ali modulu definirane vrste.

= izraz: Določite privzeto vrednost za argument, ki se ujema z njegovo vrsto iz deklaracije. Optional je obvezen za vsak argument, ki ima določeno privzeto vrednost.

ParamArray: uporabite ParamArray, ko število parametrov ni določeno. Tipična raba je pri uporabniško določeni funkciji programa Calc. Uporaba ParamArray je omejena na zadnji argument rutine.

Uporaba ParamArray ali = izraz zahteva, da je Option Compatible postavljen pred izvedljivo programsko kodo v modulu.

Ko uporabljate Option VBASupport 1, se neobvezni argumenti Optional brez privzete vrednosti (= izraz) inicializirajo glede na njihovo vrsto podatkov, razen kadar so Variant.

##### fragment typename

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

##### fragment char

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

### Primeri:

    Sub ExampleExit
    Dim sReturn As String
    Dim sListArray(10) As String
    Dim siStep As Single
        For siKorak = 0 to 10 ' napolni polje s preizkusnimi podatki
            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
    ' LinIskanje išče v polju besedil TextArray:sSeznam() besedilo sVnos:
    ' vrne indeks elementa ali pa 0 (Null)
        For iCount=1 To Ubound( sList() )
            If sList( iCount ) = sItem Then
                Exit For ' sVnos je najden
            End If
        Next iCount
        If iCount = Ubound( sList() ) Then iCount = 0
        LinSearch = iCount
    End Function