Ajuda del LibreOffice 24.8
A continuació es descriu l'ús bàsic dels procediments, les funcions i les propietats del LibreOffice BASIC.
Quan creeu un nou mòdul Basic de LibreOffice s'insereix automàticament una Sub anomenada"Principal". Aquest nom predeterminat no té res a veure amb l'ordre o el punt d'entrada d'un projecte del Basic de LibreOffice. També podeu canviar el nom de la rutina Sub de manera segura.
S’apliquen algunes restriccions als noms de les vostres variables públiques, subrutines, funcions i propietats. No heu d’utilitzar el mateix nom que un dels mòduls de la mateixa biblioteca.
Les funcions de procediments ( Sub ) ( Function ) i propietats ( Property ) us ajuden a mantenir una visió general estructurada separant un programa en peces lògiques.
Un dels avantatges dels procediments, funcions i propietats és que, un cop hagueu desenvolupat un codi de programa que contingui components de la tasca, podeu utilitzar aquest codi en un altre projecte.
Les variables es poden passar a procediments, funcions o propietats. La Sub Funció o Propietat s'ha de declarar per esperar paràmetres:
Sub SubName(Parameter1 As TYPENAME, Parameter2 As TYPENAME,...)
' el vostre codi va aquí
End Sub
La Sub es crida mitjançant la sintaxi següent:
[Call] SubName( [Parameter1:=]Value1, [Parameter2:=]Value2, ...)
Els paràmetres que es passen a una Sub s'han d'ajustar als especificats a la declaració Sub.
El mateix procés s'aplica a una funció . A més, les funcions sempre retornen un resultat de funció. El resultat d’una funció es defineix assignant el valor de retorn al nom de la funció:
Function FunctionName(Parameter1 As TYPENAME, Parameter2 As TYPENAME,...) As TYPENAME
' el vostre codi va aquí
FunctionName=Result
End Function
La Function es crida mitjançant la sintaxi següent:
Variable = FunctionName( [Parameter1:=]Value1, [Parameter2:=]Value2, ...)
Les propietats combinen la sintaxi de procediments i funcions. Una Propietat normalment requereix fins a un paràmetre.
Private _IsApproved As TYPENAME
Property Get IsApproved As TYPENAME
' el vostre codi va aquí
IsApproved = some_computation
End Property
Property Let IsApproved(value As TYPENAME)
' el vostre codi va aquí
_IsApproved = computed_value
End Property
La Property es crida mitjançant la sintaxi següent:
var = IsApproved
IsApproved = some_value
També podeu utilitzar el nom complet per a cridar un procediment, funció o propietat:
[Call] Library.Module.Macro(), on Call és opcional.
Per exemple, per a cridar la macro Autotext des de la biblioteca Gimmicks, utilitzeu l'ordre següent:
Gimmicks.AutoText.Main()
Els paràmetres es poden passar a un procediment una funció o una propietat ja sigui per referència o per valor. A menys que s'indiqui el contrari un paràmetre sempre es passa per referència. Això vol dir que una Sub, una function o una Property obté el paràmetre i pot llegir i modificar el seu valor.
Si voleu passar un paràmetre per valor inseriu la paraula clau ByVal davant del paràmetre quan crideu un Sub, una Function o una Property per exemple
Function ReadOnlyParms(ByVal p2, ByVal p2)
' el vostre codi va aquí
End Function
result = ReadOnlyParms(parm1, parm2)
En aquest cas la Function no modificarà el contingut original del paràmetre ja que només obté el valor i no el paràmetre en si.
Les funcions, procediments o propietats es poden definir amb paràmetres opcionals, per exemple:
Sub Rounding(number, Optional decimals, Optional format)
' el vostre codi va aquí
End Sub
Quan crideu una funció o una subrutina, podeu passar els seus arguments per posició o per nom. Passar per posició significa només enumerar els arguments en l'ordre en què es defineixen els paràmetres a la funció o subrutina. Passar pel nom requereix que prefixeu l'argument amb el nom del paràmetre corresponent seguit de dos punts i d'un signe igual (:=). Els arguments de paraula clau poden aparèixer en qualsevol ordre. Consulteu la funció Basic Replace() per a aquests exemples.
Quan necessiteu passar menys paràmetres, utilitzeu arguments de paraula clau. Passar valors per a menys paràmetres per posició requereix proporcionar valors per a tots els paràmetres anteriors, opcionals o no. Això garanteix que els valors estiguin en les posicions correctes. Si passeu els paràmetres pel nom, utilitzant arguments de paraula clau, podeu ometre tots els altres arguments intermedis.
Una variable definida dins d'una Sub una Function o una Property només roman vàlida fins que es surt del procediment. Això es coneix com una variable "local". En molts casos, necessitareu una variable que sigui vàlida en tots els procediments, en cada mòdul de totes les llibreries o, després d'una de sortir d'una Sub Function o una Property.
Global VarName As TYPENAME
La variable és vàlida mentre duri la sessió del LibreOffice.
Public VarName As TYPENAME
La variable és vàlida a tots els mòduls.
Private VarName As TYPENAME
La variable només és vàlida en aquest mòdul.
Dim VarName As TYPENAME
La variable només és vàlida en aquest mòdul.
Forceu que les variables privades siguin privades entre mòduls establint CompatibilityMode(True).
' ***** Module1 *****
Private myText As String
Sub initMyText
myText = "Hola"
Print "al mòdul1 : ", myText
End Sub
' ***** Module2 *****
'Option Explicit
Sub demoBug
CompatibilityMode( True )
initMyText
' Torna una cadena buida
' (o genera un error per a Option Explicit)
Print "Ara al mòdul2 : ", myText
End Sub
Static VarName As TYPENAME
La variable conserva el seu valor fins a la propera vegada que s'entra a una Function, Sub o Property. La declaració ha d'existir dins d'una Sub, Function o Property.
Igual que amb les variables, incloure un caràcter de declaració de tipus després del nom de la funció, o el tipus indicat per As i el tipus de dades corresponent al final de la llista de paràmetres per definir el tipus de valor de retorn de la funció o propietat, per exemple
Function WordCount(WordText As String) As Integer