Contenido

# Instrucción ReDim

Declara o redefine variables o matrices.

### Sintaxis:

    ReDim [Preserve] variable [(start To end)] [As type-name][, variable2 [(start To end)] [As type-name][,...]]

Optionally, add the Preserve keyword to preserve the contents of the array that is redimensioned. ReDim can only be used in subroutines.

### Parámetros:

variable: Any variable or array name.

typename: Keyword that declares the data type of a variable.

Byte: Byte variable (0-255)

Boolean: Boolean variable (True, False)

Currency: Currency variable (Currency with 4 Decimal places)

Date: Variable de fecha

Double: Double-precision floating-point variable (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: Object variable (Note: this variable can only subsequently be defined with Set!)

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

String: String variable consisting of a maximum of 2,147,483,647 characters.

Variant: Variant variable type (contains all types, specified by definition). If a type name is not specified, variables are automatically defined as Variant Type, unless a statement from DefBool to DefVar is used.

object: Universal Network object (UNO) object or ClassModule object instance.

char: Special character that declares the data type of a variable.

In LibreOffice Basic, you do not need to declare variables explicitly. However, you need to declare arrays before you can use them. You can declare a variable with the Dim statement, using commas (,) to separate multiple declarations. To declare a variable type, enter a type-declaration character following the name or use a corresponding type keyword name.

Declaration character | Variable type name
--- | ---
% | Integer
& | Long
! | Single
# | Double
$ | String
@ | Currency

array: Array declaration.

start, end: Numerical values or constants that define the number of elements (NumberElements=(end-start)+1) and the index range.

start and end can be numerical expressions if ReDim is applied at the procedure level.

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.

Arrays are declared with the Dim statement. There are multiple ways to define the index range:

      Dim text(20) As String ' 21 elements numbered from 0 to 20
      Dim value(5 to 25) As Integer ' 21 values numbered from 5 to 25
      Dim amount(-15 to 5) As Currency ' 21 amounts (including 0), numbered from -15 to 5
      REM Two-dimensional data field
      Dim table$(20,2) ' 63 items; from 0 to 20 level 1, from 0 to 20 level 2 and from 0 to 20 level 3.

Se puede declarar un tipo de matriz como dinámico si una instrucción ReDim define el número de dimensiones en la subrutina o la función que contiene la matriz. Por lo general, solo se puede definir la dimensión de una matriz una vez y no se puede modificar. Dentro de una subrutina, se puede declarar una matriz con ReDim. Las dimensiones solo se pueden definir mediante expresiones numéricas. Esto garantiza que los campos tengan solo el tamaño estrictamente necesario.

## Ejemplo:

    Sub ExampleRedim
        Dim iVar() As Integer, iCount As Byte
        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

¡Necesitamos su ayuda!