Pomoč Collabora Office 24.04
Sledi opis osnov pri uporabi procedur, funkcij in lastnosti v programskem jeziku Collabora Office Basic.
Kadar začenjate nov modul, Collabora Office Basic samodejno vstavi Sub z imenom »Main«. To privzeto ime ni na noben način povezano z razvrstitvijo ali začetno točko znotraj projekta v Collabora Office Basic. Skratka, ta Sub lahko mirno preimenujete.
Pri poimenovanju javnih spremenljivk, procedur, funkcij in lastnosti veljajo določene omejitve. Ne smete uporabljati imen, ki so enaka imenom modulov v isti knjižnici.
Procedure (podprogrami Sub), funkcije (Function) in lastnosti (Property) omogočajo, da z delitvijo programa v logične enote ohranite strukturiran pregled nad njim.
Ena od koristi, ki jo imate zaradi procedur, funkcij in lastnosti, je tudi, da lahko programsko kodo, ki ste jo razvili za sestavne dele vaše naloge, uporabljate tudi kasneje v drugih projektih.
Spremenljivke lahko podajate tako proceduram kot tudi funkcijam in lastnostim. Sub, Function in Property morate ustrezno deklarirati, da pričakuje parametre:
Sub SubName(Parameter1 As TYPENAME, Parameter2 As TYPENAME,...)
' vaša koda sodi sem
End Sub
Sub kličemo z naslednjo skladnjo:
[Call] SubName( [Parameter1:=]Value1, [Parameter2:=]Value2, ...)
Kar se vrste parametrov, podanih Sub, tiče, morajo po vrsti ustrezati definiciji Sub.
Isti proces velja tudi za funkcije (Function). Funkcije poleg tega vrnejo vrednost. Rezultat funkcije se definira tako, da se imenu funkcije pripiše želena vrednost:
Function FunctionName(Parameter1 As TYPENAME, Parameter2 As TYPENAME,...) As TYPENAME
' vaša koda sodi sem
FunctionName=Result
End Function
Function kličemo z naslednjo skladnjo:
Variable = FunctionName( [Parameter1:=]Value1, [Parameter2:=]Value2, ...)
Lastnosti združujejo skladnjo procedur in funkcij. Lastnost oz. property običajno zahteva le en parameter.
Private _IsApproved As TYPENAME
Property Get IsApproved As TYPENAME
' vaša koda sodi sem
IsApproved = some_computation
End Property
Property Let IsApproved(value As TYPENAME)
' vaša koda sodi sem
_IsApproved = computed_value
End Property
Property kličemo z naslednjo skladnjo:
var = IsApproved
IsApproved = some_value
Za klic procedure, funkcije in lastnosti lahko uporabljate tudi polno kvalificirano ime:
[Call] Knjižnica.Modul.Makro(), kjer je Call neobvezen.
Če želite npr. uporabiti makro Samobesedilo iz knjižnice PredlogeZaPisma, vnesite naslednji ukaz:
PredlogeZaPisma.Samobesedilo.Main()
Parametre lahko proceduri, funkciji ali lastnosti podate kot vrednosti ali kot sklic. Če drugače ni navedeno, se parameter vedno poda kot sklic. To pomeni, da Sub, Function ali Property parameter prevzame in da njegovo vrednost lahko bere in spreminja.
Če želite parameter podati samo kot vrednost, je morate pri klicu Sub, Function oz. Property pred parameter vstaviti ključni izraz ByVal. Primer:
Function ReadOnlyParms(ByVal p2, ByVal p2)
' vaša koda sodi sem
End Function
result = ReadOnlyParms(parm1, parm2)
V tem primeru se vrednost spremenljivke, ki je parameter, po opravljenem klicu ne bo spremenila, ne glede na to, kaj se z njo v Function dogaja; funkcija dobi na razpolago samo vrednost parametra, vendar ne sklica nanjo.
Funkcije, procedure in lastnosti lahko določite z neobveznimi parametri. Primer:
Sub Rounding(number, Optional decimals, Optional format)
' vaša koda sodi sem
End Sub
Ko kličete funkcijo ali podprogram, lahko podate argumente po položaju ali po imenu. Podajanje po položaju pomeni, da argumente podate v zaporedju, kot so določeni v funkciji ali podprogramu. Podajanje po imenu zahteva, da argumentu dodate predpono imena ustreznega parametra, sledita pa dvopičje in enačaj (:=). Argumenti ključnih besed se lahko pojavijo v poljubnem zaporedju. Glejte funkcijo Basic Replace(), kjer so navedeni takšni primeri.
Če želite podati manj parametrov, za argumente uporabite ključne besede. Podajanje vrednosti za manjše število parametrov glede na položaj zahteva podajanje vrednosti za vse parametre pred njimi, ne glede na to, ali so obvezni. To zagotavlja, da so vrednosti na pravih mestih. Če podate parametre po imenu – z argumenti ključnih besed – lahko izpustite vse druge vmesne argumente.
Spremenljivka, ki ste jo definirali znotraj Sub, Function ali Property, bo veljala samo toliko časa, dokler procedure ni konec. Spremenljivki zato rečemo, da je »lokalna«. V mnogo primerih potrebujete spremenljivko, ki je veljavna v vseh procedurah, v vseh modulih vseh knjižnic in/ali po izhodu iz Sub, Function oz. Property.
Global VarName As TYPENAME
Spremenljivka je veljavna toliko časa, kolikor dolgo traja seja Collabora Office.
Public VarName As TYPENAME
Spremenljivka je veljavna v vseh modulih.
Private VarName As TYPENAME
Ta spremenljivka velja samo znotraj tega modula.
Dim VarName As TYPENAME
Ta spremenljivka velja samo znotraj tega modula.
Vsili zasebnost spremenljivke v vseh modulih z nastavitvijo CompatibilityMode(True).
' ***** Module1 *****
Private myText As String
Sub initMyText
mojeBesedilo = "Živijo"
Print "V modulu1: ", mojeBesedilo
End Sub
' ***** Module2 *****
'Option Explicit
Sub demoBug
CompatibilityMode( True )
initMyText
' Vrne prazen niz
' (ali vrne napako za Option Explicit)
Print "Zdaj v modulu2: ", mojeBesedilo
End Sub
Static VarName As TYPENAME
Spremenljivka ohrani svojo vrednost do prihodnjega klica Function, Sub ali Property. Deklaracija se mora nahajati znotraj Sub, Function oz. Property.
Ko pri spremenljivkah uporabite tudi pri funkcijah znak za deklaracijo vrste z imenom funkcije, ali pa vrsto za ključno besedo As in pa ustrezno vrsto podatka na koncu seznama parametrov – z njo določite, kakšne vrste je rezultat, ki ga vrača funkcija oz. lastnost. Primer:
Function WordCount(WordText As String) As Integer