Contenido
Índice 🔎︎

# Uso de variables

A continuación se describe el uso básico de variables en LibreOffice Basic.

## Convenciones de nombres para identificadores de variables

Un nombre de variable puede tener hasta 255 caracteres. El primer carácter de un nombre de variable debe ser una letra A-Z o a-z. Los números también pueden usarse en los nombres de variable, pero los símbolos de puntuación y los caracteres especiales no están permitidos, con excepción del carácter de subrayado ("_"). En LibreOffice Basic no se hace distinción entre mayúsculas/minúsculas en los identificadores de variable. Los nombres de variable pueden contener espacios, pero en ese caso deben incluirse entre corchetes.

Ejemplos de identificadores de variable:

          MyNumber=5
| Correcto
          MyNumber5=15
| Correcto
          MyNumber_5=20
| Correcto
          My Number=20
| No es válida, las variables con espacios deben incluirse entre corchetes
          [My Number]=12
| Correcto
          DéjàVu=25
| No es válida, no se permiten caracteres especiales
          5MyNumber=12
| No es válida, la variable no puede empezar con un número
          Number,Mine=12
| No es válida, marcas de puntuación no permitidas

## Declaración de variables

En LibreOffice Basic no es necesario declarar las variables explícitamente. Las declaraciones de variables pueden realizarse con la instrucción Dim. Puede declarar más de una variable a la vez separando sus nombres mediante una coma. Para definir el tipo de variable, use un signo de declaración de tipo después del nombre o la palabra clave apropiada.

Ejemplos de declaraciones de variable:

          Dim a$
| Declara la variable «a» como String
          Dim a As String
| Declara la variable «a» como String
          Dim a$, b As Integer
| Declara una variable como String y otra como Integer
          Dim c As Boolean
| Declara c como variable booleana que puede ser TRUE o FALSE

Es muy importante al declarar variables que utilice siempre el carácter de declaración de tipo, aunque se usara en la declaración en lugar de una palabra clave. Por tanto, las instrucciones siguientes no son válidas:

          Dim a$
| Declara «a» como String
          a="TestString"
| Falta la declaración de tipo: "a$="

Tenga en cuenta que en cuanto haya declarado una variable como de un tipo concreto ya no puede declararla con el mismo nombre y un tipo distinto.

### Forzar declaraciones de variables

Para forzar la declaración de variables, use la orden siguiente:

    Option Explicit

La instrucción Option Explicit debe ser la primera línea del módulo, antes del primer SUB. Normalmente, solo es necesario declarar explícitamente las matrices. El resto de las variables se declaran según el carácter de declaración de tipo o, si se omite, según el tipo predeterminado Single.

## Tipos de variable

LibreOffice Basic admite cuatro clases de variables:

- Numérica, puede contener valores numéricos. Algunas variables se utilizan para almacenar números grandes o pequeños y otras para números de coma flotante o fracciones.

- Cadena, contiene cadenas de caracteres.

- Lógico, contiene el valor TRUE (verdadero) o FALSE (falso).

- Objeto, puede almacenar objetos de diversos tipos, como tablas y documentos dentro de un documento.

### Variables enteras

Las variables de números enteros van desde −32768 hasta 32767. Si se asigna un valor de coma flotante a una variable de número entero, los decimales se redondearán hacia el entero siguiente. Las variables de números enteros se calculan rápidamente en los procedimientos y son apropiadas para variables contadoras en bucles. Estas variables solo necesitan dos bytes de memoria. El carácter de declaración de tipo es «%».

    Dim Variable%
    Dim Variable As Integer

### Variables enteras largas

Las variables de entero largo van de −2147483648 a 2147483647. Si asigna un valor de coma flotante a una variable de entero largo, los valores decimales se redondean al entero más próximo. Las variables de entero largo se calculan rápidamente en los procedimientos y son adecuadas como variables contadoras en bucles de valor elevado. Una variable de entero largo necesita cuatro bytes de memoria. El carácter de declaración de tipo es «&».

    Dim Variable&
    Dim Variable As Long

### Variables decimales

Las variables decimales pueden tomar numeros positivos y negativos o el numero cero. La exactitud esta hasta 29 digitos.

Puede utilizar un signo de suma (+) o resta (-) como prefijo a un número decimal (con o sin espacios).

Si un numero decimal esta asignado a una variable integral LibreOffice Basic redondea la cantidad arriba o abajo.

### Variables simples

Las variables simples pueden tener valores positivos o negativos desde 3,402823 x 10E38 a 1,401298 x 10E-45. Las variables simples son de coma flotante, en las que la precisión decimal decrece a medida que la parte no decimal del número aumenta. Las variables simples son adecuadas para realizar cálculos matemáticos de precisión media. Los cálculos requieren más tiempo que para las variables enteras, pero son más rápidos que las de tipo doble. Una variable simple requiere 4 bytes de memoria. El carácter de declaración de tipo es «!».

    Dim Variable!
    Dim Variable As Single

### Variables dobles

Las variables dobles pueden tener valores positivos o negativos desde 1.79769313486232 x 10E308 a 4.94065645841247 x 10E-324. Las variables dobles son de coma flotante, en el que la precisión decimal decrece a medida que la parte no decimal del número aumenta. Las variables dobles son adecuadas para cálculos precisos. Los cálculos requieren más tiempo que las variables simples. Una variable doble requiere 8 bytes de memoria. El carácter de declaración de tipo es «#».

    Dim Variable#
    Dim Variable As Double

### Variables de moneda

Las variables de moneda se almacenan internamente como números de 64 bits (8 bytes) y se muestran como números con cantidad de decimales fija con 15 posiciones no decimales y 4 decimales. Los valores van de −922337203685477,5808 a +922337203685477,5807. Las variables de moneda se usan para calcular valores de divisas con una precisión elevada. El carácter de declaración de tipo es «@».

    Dim Variable@
    Dim Variable As Currency

### Variables de cadena

Las variables de cadena pueden contener cadenas compuestas por hasta 65.535 caracteres. Cada carácter se almacena como el valor Unicode correspondiente. Las variables de cadena son adecuadas para el procesamiento de texto dentro de programas y para almacenamiento temporal de caracteres no imprimibles de hasta una longitud máxima de 64 Kbytes. La memoria necesaria para almacenar variables de cadena depende del número de caracteres que ésta contenga. El carácter de declaración de tipo es «$».

    Dim Variable$
    Dim Variable As String

### Variables lógicas

Las variables lógicas o booleanas solo almacenan uno de estos dos valores: TRUE (‘verdadero’) o FALSE (‘falso’). Un número 0 se evalúa como FALSE, cualquier otro número como TRUE.

    Dim Variable As Boolean

### Variables de fecha

Las variables de fecha solo pueden contener valores de fecha y hora almacenados en un formato interno. Los valores asignados a variables de fecha con Dateserial, Datevalue, Timeserial o Timevalue se convierten automáticamente al formato interno. Las variables de fecha se convierten a números normales usando las funciones Day, Month, Year or the Hour, Minute, Second. El formato interno permite la comparación de valores de fecha/hora calculando la diferncia entre dos números. estas variables solamente pueden declararse con la palbra clave Date.

    Dim Variable As Date

## Valores iniciales de las variables

En cuanto se declare la variable, esta recibe automáticamente el valor «Null» (‘nulo’). Preste atención a las convenciones siguientes:

A las variables numéricas se les asigna automáticamente el valor «0» desde que se definen.

A las variables de fecha se les asigna el valor 0 internamente; que equivale a convertir el valor a "0" con las funciones Day, Month, Year or the Hour, Minute, Second.

A las variables de cadena se les asigna una cadena vacía («») cuando se declaran.

## Matrices

LibreOffice Basic distingue matrices de una o varias dimensiones, definidas por un tipo de variables especificado. Las matrices son adecuadas para editar listas y tablas en los programas. Se puede acceder a los elementos individuales de las matrices utilizando un índice numérico.

Las matrices deben declararse con la instrucción Dim. Hay varias maneras de definir el intervalo de índices de una matriz:

          Dim Text$(20)
| 21 elementos numerados del 0 al 20
          Dim Text$(5,4)
| 30 elementos (una matriz de 6 × 5 elementos)
          Dim Text$(5 To 25)
| 21 elementos numerados del 5 al 25
          Dim Text$(-15 To 5)
| 21 elementos (incluido el 0), numerados del −15 al 5

El intervalo de índices puede incluir números positivos y negativos.

## Constantes

Las constantes tienen un valor fijo. Solo se definen una vez en el programa y no pueden volverse a definir más adelante:

    Const ConstName=Expression