Módulo
Conteúdo
Índice 🔎︎

# Instrução ReDim

Declara uma variável ou uma matriz.

## Sintaxe:

    [ReDim]Dim VarName [(start To end)] [As VarType][, VarName2 [(start To end)] [As VarType][,...]]

Opcionalmente, você pode acrescentar a palavra-chave Preserve como um parâmetro de forma a preservar o conteúdo da matriz que está sendo redimensionado.

## Parâmetros:

VarName: qualquer nome de matriz ou variável.

Start, End: Constantes ou valores numéricos que definem o número de elementos (NumberElements=(end-start)+1) e o intervalo do índice.

Start e End podem ser expressões numéricas se ReDim for usada no nível do procedimento.

VarType: Palavra chave que declara o tipo de uma variável.

Palavra-chave: tipo de variável

Bool: variável lógica (True, False)

Date: variável de data

Double: Variável de ponto flutuante Double (1.79769313486232x10E308 - 4.94065645841247x10E-324)

Integer: variável de número inteiro (-32768 - 32767)

Long: variável de número inteiro longo (-2.147.483.648 - 2.147.483.647)

Object: variável de objeto (só poderá ser definida subsequentemente por Set!)

[Single]: Variável Single de ponto flutuante (3.402823x10E38 - 1.401298x10E-45). Se nenhuma palavra-chave for especificada, a variável é definida como sendo Single, a não ser que uma instrução de DefBool para DefVar seja usada.

String: variável de cadeia de caracteres que contém, no máximo, 64.000 caracteres ASCII.

Variant: tipo de variável variante (pode conter todos os tipos e é configurada por definição).

Você não precisa declarar variáveis explicitamente no LibreOffice Basic. No entanto, você precisa declarar uma matriz antes de usá-la. Você pode declarar uma variável com a instrução Dim, utilizando vírgulas para separar as várias declarações. Para declarar um tipo de variável, digite o caractere de declaração de tipo seguido do nome ou use uma palavra-chave correspondente.

O LibreOffice Basic oferece suporte a matrizes uni ou multidimensionais que sejam definidas por um tipo de variável especificado. As matrizes são úteis quando o programa contém listas ou tabelas que você queira editar. A vantagem das matrizes é que elas possibilitam fazer referência a elementos individuais de acordo com índices, que podem ser formulados como variáveis ou expressões numéricas.

Há duas maneiras de definir o intervalo dos índices para vetores declarados com a instrução Dim:

DIM text(20) As String REM 21 elementos numerados de 0 a 20

DIM text(5 to 25) As String REM 21 elementos numerados de 5 a 25

DIM text$(-15 to 5) As String REM 21 elementos (incluindo 0),

rem numerados de -15 a 5

Campos de variáveis, independente do tipo, podem ser tornados dinâmicos usando ReDim no nível de procedimento em sub-rotinas ou funções. Normalmente, você pode definir o tamanho de um vetor uma única vez e não pode modificá-lo. Dentro de um procedimento, você pode declarar o vetor usando a instrução ReDim com expressões numéricas para definir a faixa dos tamanhos de campo.

## Exemplo:

    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