Instrução ReDim

Declara uma variável ou uma matriz.

Sintaxe:

[ReDim]Dim NomeVar [(início To fim)] [As TipoVar][, NomeVar2 [(início To fim)] [As TipoVar][,...]]

Opcionalmente, pode adicionar a palavra-chave Manter como parâmetro para manter o conteúdo da matriz redimensionada.

Parâmetros:

NomeVar: Qualquer variável ou nome de matriz.

Início, Fim: valores numéricos ou constantes que definem o número de elementos (NúmeroElementos=(fim-início)+1) e o intervalo do índice.

Início e Fim podem ser expressões numéricas se ReDim for utilizada no nível de procedimento.

TipoVar: palavra-chave que determina o tipo de dados de uma variável.

Palavra-chave: tipo de variável

Bool: Variável booleana (True, False)

Data: Variável da data

Duplo: Variável de vírgula flutuante dupla (1,79769313486232x10E308 - 4,94065645841247x10E-324)

Número inteiro: variável de números inteiros (-32768 - 32767)

Longo: Variável de números inteiros longos (-2,147,483,648 - 2,147,483,647)

Objeto: variável de objeto (só pode ser definida ulteriormente em Set!)

[Single]: Variável de vírgula flutuante única (3,402823x10E38 - 1,401298x10E-45). Se não existir uma palavra-chave especificada, uma variável é definida como Individual, a menos que seja utilizada uma instrução de DefBool a DefVar.

Cadeia: variável de cadeia que contém um máximo de 64 000 caracteres ASCII.

Variante: tipo de variável variante (pode conter todos os tipos e por norma , está definida).

No LibreOffice Basic, não precisa de declarar variáveis de forma explícita. No entanto, é necessário que defina uma matriz antes de as poder utilizar. Pode definir uma variável através da instrução Dim, utilizando vírgulas para separar múltiplas declarações. Para declarar um tipo de variável, introduza um carácter de declaração de tipo a seguir ao nome, ou utilize a palavra-chave correspondente.

O LibreOffice Basic aceita matrizes únicas ou multi-dimensionais definidas por um tipo de variável específico. As matrizes são úteis caso o programa contenha listas ou tabelas que deseje editar. A vantagem das matrizes é que tornam possível endereçar elementos individuais de acordo com os índices, que podem ser formulados como expressões numéricas ou variáveis.

Existem duas formas de definir o intervalo dos índices para as matrizes definidas através da 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 (0 inclusive),

rem numerada de -15 a 5

Os campos de variáveis, independentemente do tipo, podem ser tornados dinâmicos se forem dimensionados por ReDim no nível de procedimento em sub-rotina ou funções. Normalmente, só é possível definir uma vez o intervalo de uma matriz e não é possível modificá-lo. Num procedimento, é possível definir uma matriz utilizando a instrução ReDim com expressões numéricas para definir o intervalo do tamanho dos campos.

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