Contenido
Índice 🔎︎

# Instrucción Dim

Declara una variable o una matriz.

Si las variables están separadas por comas (por ejemplo, DIM sPar1, sPar2, sPar3 AS STRING), sólo pueden definirse variables variant. Use una línea de definición separada para cada variable.

    Dim sPar1 As String
    Dim sPar2 As String
    Dim sPar3 As String

Dim declara variables locales dentro de subrutinas. Las variables globales se declaran con la instrucción PUBLIC o PRIVATE.

## Sintaxis:

    [ReDim]Dim NombreVar [(inicio To final)] [As TipoVar][, NombreVar2 [(inicio To final)] [As TipoVar][,...]]

## Parámetros:

NombreVar: cualquier nombre de variable o de matriz.

Inicio, Final: valores numéricos o constantes que definen el número de elementos (NúmeroElementos=(final-inicio)+1) y el intervalo del índice.

Inicio y Final pueden ser expresiones numéricas si se aplica ReDim a nivel de prodecimiento.

TipoVar: Palabra clave que declara el tipo de datos de una variable.

Palabra clave: Tipo de variable

Bool: Variable lógica (True, False)

Currency: variable monetaria (moneda con 4 decimales)

Date: Variable de fecha

Double: Variable de precisión doble y coma flotante (1,79769313486232 x 10E308 - 4,94065645841247 x 10E-324)

Integer: Variable entera (-32768 - 32767)

Long: Variable larga (-2.147.483.648 -2.147.483.647)

Object: Variable de objeto (Nota: esta variable sólo puede definirse a partir de este momento con la instrucción Set)

Single: Variable de precisión simple y coma flotante (3,402823 x 10E308 -1,401298 x 10E-45).

String: variable de cadena que se compone de un máximo de 64 000 caracteres ASCII.

[Variant]: Tipo de variable variante (contiene todos los tipos, especificado por definición). Si no se especifica ninguna palabra clave, las variables se definen automáticamente como de tipo variant, a menos que se use una instrucción desde DefBool a DefVar.

En LibreOffice Basic no es necesario declarar variables explícitamente. Sin embargo, es necesario declarar las matrices antes de poder usarlas. Puede declarar una variable con la instrucción Dim, usando comas para separar múltiples declaraciones. Para declarar un tipo de variable, escriba un carácter de declaración de tipo seguido del nombre o use la palabra clave correspondiente.

LibreOffice Basic admite matrices de una o varias dimensiones, definidas por un tipo de variable especificado, que resultan útiles si el programa contiene listas o tablas que se desea editar. La ventaja de las matrices es que es posible acceder a elementos individuales utilizando índices, los cuales pueden formularse como expresiones numéricas o variables.

Las matrices se declaran con la instrucción Dim. Existen dos métodos para definir el intervalo de índices:

DIM texto(20) as String REM 21 elementos numerados del 0 al 20

DIM texto(5 to 25) as String REM 21 elementos numerados del 5 al 25

DIM texto(-15 to 5) as String REM 21 elementos (incluido el 0)

REM numerados del -15 al 5

Campos de datos bidimensionales

DIM texto(20,2) as String REM 63 elementos; del 0 al 20 en el nivel 1, de 0 al 20 en el nivel 2 y de 0 al 20 en el nivel 3.

Puede declarar un tipo de matriz como dinámica si una instrucción ReDim define el número de dimensiones en la subrutina o la función que contenga la matriz. Normalmente las dimensiones de la matriz sólo se pueden definir una vez y posteriormente ya no pueden modificarse. Dentro de una subrutina las matrices pueden declararse con ReDim. Las dimensiones sólo pueden definirse con expresiones numéricas. Ello asegura que los campos no superen la magnitud necesaria.

## Ejemplo:

    Sub ExampleDim1
    Dim sVar As String
    Dim iVar As Integer
        sVar = "Office"
    End Sub

    Sub ExampleDim2
    ' Campo de datos bidimensional
    Dim stext(20,2) As String
    Const sDim As String = " Dimensión:"
    For i = 0 To 20
        For ii = 0 To 2
            stext(i,ii) = str(i) & sDim & str(ii)
        Next ii
    Next i
    For i = 0 To 20
        For ii = 0 To 2
            MsgBox stext(i,ii)
        Next ii
    Next i
    End Sub