LibreOffice 25.2 laguntza
Hurrengoak LibreOffice Basic lengoaiaren prozedura, funtzio eta propietateen oinarrizko erabilera deskribatzen du.
Modulu berria sortzen denean, LibreOffice Basic lengoaiak automatikoki txertatzen du "Main" izena duen Sub bat. Izen lehenetsi horrek ez du inolako eraginik LibreOffice Basic proiektuaren hasiera-puntuaren ordenarekin. Sub errutina horren izena arazorik gabe aldatu daiteke.
Zenbait muga aplikatzen zaizkie aldagai, azpierrutina, funtzio eta propietate publikoen izenei. Ezin da erabili liburutegi bereko moduluetako edozeinen izen bera.
Procedures (Subroutines) functions (Function) and properties (Property) help you maintaining a structured overview by separating a program into logical pieces. These pieces can be easily reused to perform similar tasks in other projects.
Aldagaiak prozedurei, funtzioei zein propietateei pasatu dakizkiete. Sub, Function edo Property elementuak deklaratu behar dira parametroak espero izateko:
Sub SubName(Parameter1 As TYPENAME, Parameter2 As TYPENAME,...)
' zure kodea hemen doa
End Sub
Sub elementuak honako sintaxia erabilita deitzen dira:
[Call] SubName( [Parameter1:=]Value1, [Parameter2:=]Value2, ...)
Sub bati pasatutako parametroek Sub deklarazioan zehaztutakoekin bat etorri behar dute.
The same process applies to a Function. In addition, functions always return a result. This result is defined by assigning the value to return to the function name:
Function FunctionName(Parameter1 As TYPENAME, Parameter2 As TYPENAME,...) As TYPENAME
' zure kodea hemen doa
FunctionName=Result
End Function
Function deitzeko, erabili honako sintaxia:
Variable = FunctionName( [Parameter1:=]Value1, [Parameter2:=]Value2, ...)
Propietateek prozeduren eta funtzioen sintaxia konbinatzen dute. Property batek normalean parametro bat behar du.
Private _IsApproved As TYPENAME
Property Get IsApproved As TYPENAME
' zure kodea hemen doa
IsApproved = some_computation
End Property
Property Let IsApproved(value As TYPENAME)
' zure kodea hemen doa
_IsApproved = computed_value
End Property
Property deitzeko, erabili honako sintaxia:
var = IsApproved
IsApproved = some_value
Izen kualifikatu osoa ere erabili daiteke prozedura, funtzio edo propietate bati deitzeko:
[Call] Library.Module.Macro(), non Call aukerakoa den.
Adibidez, Gimmicks liburutegiko Autotext makroari deitzeko, erabili honako komandoa:
Gimmicks.AutoText.Main()
Parametroak prozedura bati, funtzio bati edo propietate bati pasatu dakizkioke, bai erreferentzia modura bai balio modura. Ezer adierazten ez bada, parametro bat beti erreferentzia modura pasatzen da. Horrek esan nahi du Sub, Function edo Property elementuak parametroa jaso eta bere balioa irakurri eta aldatu dezakeela.
Parametro bat balio modura pasatu nahi bada, ByVal kodea erabili behar da parametroaren aurrean Sub, Function edo Property elementua deitzen denean. Adibidez:
Function ReadOnlyParms(ByVal p2, ByVal p2)
' zure kodea hemen doa
End Function
result = ReadOnlyParms(parm1, parm2)
Kasu honetan Function funtzioak ez du parametroaren jatorrizko edukia aldatuko, haren balioa hartzen baitu, ez parametroa bera.
Funtzioak, prozedurak edo propietateak aukerako parametroekin definitu daitezke, adibidez:
Sub Rounding(number, Optional decimals, Optional format)
' zure kodea hemen doa
End Sub
Funtzio bati edo azpierrutina bati deitzen zaionean, haien argumentuak kokalekuaren arabera edo izenaren arabera pasatu daitezke. Kokalekuaren arabera pasatzeak esan nahi du argumentuak funtzioan edo azpierrutinan definituta dauden ordena berean zerrendatzen direla. Izenaren arabera pasatzeko, argumentuari parametroaren izena, bi puntu eta berdin ikur bat atxiki behar zaizkio aurrean (:=). Gako-hitzen bidezko argumentuak edozein ordenatan agertu daitezke. Begiratu Basic-en Replace() funtzioa horren adibideak ikusteko.
Parametro gutxiago pasatu behar badira, erabili gako-hitzen bidezko argumentuak. Kasu horretan kokalekuaren arabera pasatu nahi badira argumentuak, parametro guztietarako eman behar dira balioak, berdin dio aukerakoak diren ala ez. Horrela, balioak kokaleku zuzenean sartzen direla ziurtatuko da. Parametroak izenaren arabera -gako-hitzen bidezko argumentuak- pasatzen badira, tarteko argumentuak ez dago sartu beharrik.
Sub, Function edo Property batean definitutako aldagai bat baliozkoa izango da prozesuratik irten arte soilik. Horri aldagai "lokal" deritzo. Zenbait kasutan, hala ere, aldagai bat beharrezkoa izaten da prozedura guztietan, liburutegi guztietako modulu guztietan edo Sub, Function edo Property batetik irten ondoren ere.
Global VarName As TYPENAME
Aldagaia LibreOffice saioak irauten duen bitartean da baliozkoa.
Public VarName As TYPENAME
Aldagaia baliozkoa da modulu guztietan.
Private VarName As TYPENAME
Aldagaia modulu honetan bakarrik da baliozkoa.
Dim VarName As TYPENAME
Aldagaia modulu honetan bakarrik da baliozkoa.
Aldagai pribatuak modulu guztietan pribatu izan daitezke, ezarri CompatibilityMode(True).
' ***** Module1 *****
Private myText As String
Sub initMyText
myText = "Kaixo"
print "in module1 : ", myText
End Sub
' ***** Module2 *****
'Option Explicit
Sub demoBug
CompatibilityMode( True )
initMyText
' Now kate huts bat ematen du
' (edo errorea sortzen du Option Explicit funtziorako)
print "Now in module2 : ", myText
End Sub
Static VarName As TYPENAME
Aldagaiak bere balioa gordetzen du Function, Sub edo Property bat berriro sartu arte. Deklarazioak Sub, Function edo Property baten barruan existitu behar du.
Aldagaietan bezala, sartu mota deklaratzeko karaktere bat funtzioaren izenaren ondoren, edo As kodeak adierazitako mota eta hari dagokion datu mota parametro-zerrendaren amaieran, funtzioaren edo propietatearen itzulerako balioaren mota definitzeko. Adibidez:
Function WordCount(WordText As String) As Integer