Módulo
Contenido
Índice 🔎︎

# Instrucción ReDim

Declara una variable o una matriz.

## Sintaxis:

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

De forma opcional, puede agregar la palabra clave Preserve como parámetro para conservar el contenido de la matriz que se redimensiona.

## 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 usa 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)

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 (a partir de ahora sólo puede definirse con la instrucción Set).

[Single]: Variable de precisión simple y coma flotante (3,402823 x 10E308 -1,401298 x 10E-45). Si no se especifica ninguna palabra clave, las variables se definen como de tipo Simple, a menos que se use una instrucción desde DefBool a DefVar.

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

Variant: Tipo de variable variante (puede contener todos los tipos y se especifica por definición).

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 .

Hay dos formas de establecer el intervalo de índices para matrices declaradas con la instrucción Dim:

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

Los campos de variables, cualquiera que sea su tipo, pueden hacerse dinámicos si los dimensiona ReDim a nivel de procedimiento en subrutinas o funciones. Normalmente solo puede definirse el intervalo de una matriz una vez y no puede modificarse. Dentro de un procedimiento, pueden declararse matrices mediante la instrucción ReDim con expresiones numéricas para definir el intervalo de los tamaños de campo.

## Ejemplo:

    Sub ExampleRedim

    Dim iVar() As Integer, iCount As Integer

    ReDim iVar(5) As Integer

    For iCount = 1 To 5

        iVar(iCount) = iCount

    Next iCount

    ReDim iVar(10) As Integer

    For iCount = 1 To 10

        iVar(iCount) = iCount

    Next iCount

    End Sub