Module
Contents
Index 🔎︎

# Usu de procedimientos y funciones

De siguío descríbese l'usu básicu de procedimientos y funciones en LibreOffice Basic.

Cuando se crea un módulu nuevu, LibreOffice Basic inxerta automáticamente una SUB llamada "Main". Esti nome predetermináu nun tien nada que ver col orde o'l puntu d'entamu d'un proyectu de LibreOffice Basic. Pue camudase ensin problemes.

Dalgunes restricciones aplíquenes nos nomes de les sos variables públiques, subs, y funciones. Nun tien d'usar el mesmu nome nos módulos de la mesma llibrería.

Los procedimientos (SUBS) y funciones (FUNCTIONS) ayuden a caltener un aspeutu estructurado dixebrando un programa en partes lóxiques.

Una ventaya de los procedimientos y funciones ye qu'en cuanto se desenvuelve un códigu de programa que contién componentes de xera, ésti pue usase n'otru proyectu.

## Pasu de variables a procedimientos (SUB) y funciones (FUNCTION)

Les variables puen pasase a procedimientos y funciones. SUB o FUNCTION tienen de tar declaraos por que se-yos pueda pasar parámetros:

    Sub SubName(Parameter1 As Type, Parameter2 As Type,...)

    Códigu de programa

    End Sub

A SUB llámase-y por aciu la sintaxis siguiente

    SubName(Value1, Value2,...)

Los parámetros que se pasen a SUB tienen de coincidir colos especificaos na declaración de SUB.

El mesmu procesu aplícase a les FUNCIONES. Amás, les funciones siempre devuelven un resultáu de función. El resultáu d'una función defínese atribuyendo'l valor a devolver al nome de la función:

    Function FunctionName(Parameter1 As Type, Parameter2 As Type,...) As Type

    Códigu de programa

    NomeFuncion=Resultáu

    End Function

A FUNCTION se la llapada por aciu la sintaxis siguiente:

    Variable=NomeFunción(Parámetru1, Parámetru2,...)

Coles mesmes, pue utilizar el nome completu pa llamar a un procedimientu o función:
Library.Module.Macro()
Por exemplu, pa llamar a la macro AutoTestu dende la biblioteca Gimmicks, utilice'l comandu siguiente:
Gimmicks.AutoText.Main()

## Pasu de variables per valor o por referencia

Los parámetros puen pasase a SUB o FUNCTION por referencia o por valor. Nun siendo que s'especifique d'otra forma, los parámetros siempres se pasen por referencia. Esto significa que SUB o FUNCTION llogren el parámetru y que'l so valor pue lleese y modificar.

Pa pasar un parámetru por valor inxertar la pallabra clave "ByVal" delantre del parámetru cuando se llama a una SUB o FUNCTION, por exemplu:

    Resultáu = Función(Parámetru ByVal)

Nesti casu, FUNCTION nun va modificar el conteníu orixinal del parámetru yá que namái llogra'l valor y non el parámetru en sí.

## Ámbitu de variables

Un variable definida dientro un SUB o FUNCTION, ye válida solamente dientro de la función. Conocer como un variable "local". En dellos casos, precisa una variable que ye válida en tolos procedimientos, en tolos módulos de les biblioteques, o dempués qu'haya salida del SUB o FUNCTION.

### Declaración de variables dende fora de SUB o FUNCTION

    Global NomeVariable As NOMETIPU

La variable ye válida mientres tola sesión de LibreOffice.

    Public NomeVariable As NOMETIPU

La variable ye válida en tolos módulos.

    Private NomeVariable As NOMETIPU

La variable namái ye válida nesti módulu.

    Dim NomeVariable As NOMETIPU

La variable namái ye válida nesti módulu.

### Exemplu pa variables privaes

Forza variables quitaes permanecer privaes configurando'l módulu de compatibilidá como verdaderu CompatibilityMode(true).

    ' ***** Module1 *****

    Private myText As String

    Sub initMyText

        myText = "Hola"

        Print "Nel módulu1 : ", myText

    End Sub

    ' ***** Module2 *****

    'Option Explicit

    Sub demoBug

        CompatibilityMode( true )

        initMyText

        ' Agora torna una cadena balera

        ' (o s'alza l'erru pa Opción Explicita)

        Print "Agora nel módulu2 : ", myText

    End Sub

### Guardáu de conteníu de variables dempués de salir de SUB o FUNCTION

    Static NomeVariable As NOMETIPU

La variable caltién el so valor hasta la próxima vegada que s'ente na FUNCTION o SUB. La declaración tien d'esistir dientro de SUB o FUNCTION.

## Especificación del tipu de valor de torna d'una FUNCTION

Al igual que coles variables, incluya un caráuter de declaración de tipu dempués del nome de la función o'l tipu indicáu por "As" y la pallabra clave correspondiente a la fin de la llista de parámetros pa definir el tipu del valor de torna de la función, por exemplu:

    Function WordCount(WordText As String) As Integer