Instrução ReDim

Declara ou redefine variáveis ou matrizes.

Sintaxe:

Diagrama da instrução ReDim


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

Opcionalmente, adicione a palavra-chave Preserve para preservar o conteúdo do vetor que é redimensionado. ReDim só pode ser utilizado em sub-rotinas.

Parâmetros:

variable: qualquer nome de variável ou matriz.

typename: palavra-chave que declara o tipo de dado da variável.

fragmento de tipo de dados de primitivas

Byte: variável byte (0-255)

Boolean: variável booleana (True, False)

Currency: variável monetária (moeda com 4 casas decimais)

Date: variável de data

Double: variável de ponto flutuante de precisão dupla (1,79769313486232 x 10E308 - 4,94065645841247 x 10E-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 (Nota: essa variável só poderá ser definida posteriormente com Set!)

Single: variável de ponto flutuante de precisão simples (3,402823 x 10E38 - 1,401298 x 10E-45).

String: variável de cadeia de caracteres que consiste em um máximo de 64.000 caracteres ASCII.

Variant: variável de tipo Variant (contém todos os tipos, especificados por definição). Caso não seja especificada nenhuma palavra-chave, as variáveis serão automaticamente definidas como Variant, a não ser que seja usada uma instrução de DefBool para DefVar.

object: Objeto UNO (Universal Network Object) ou instância de objeto ClassModule.

char: caractere especial que declara o tipo de dados da variável.

fragmento de caracteres de declaração de tipo de dados

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.

Declaration character

Variable type name

%

Integer

&

Long

!

Single

#

Double

$

String

@

Currency


array: declaração de matriz.

fragmento de matriz

start, end: valores numéricos ou constantes que definem o número de elementos ( = (end-start)+1) e o intervalo de índices.

start e end podem ser expressões numéricas caso ReDim seja aplicado dentro da rotina.

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.

As matrizes são declaradas com a instrução Dim. Há várias maneiras para definir o intervalo de índices:


  Dim text(20) As String ' 21 elementos numerados de 0 a 20
  Dim value(5 to 25) As Integer ' 21 valores numerados de 5 a 25
  Dim amount(-15 to 5) As Currency ' 21 montantes (incluindo 0), numerados de -15 a 5
  REM campo de dados bidimensional
  Dim table$(20,2) ' 63 itens; de 0 a 20 nível 1, de 0 a 20 nível 2 e de 0 a 20 nível 3.

Você pode declarar um tipo de vetor como dinâmico se a instrução ReDim definir o número de dimensões na sub-rotina ou na função que contém o vetor. Em geral, você só poderá definir a dimensão do vetor uma única vez e não poderá modificá-la posteriormente. Em uma sub-rotina, pode-se declarar um vetor com ReDim. Você só pode definir dimensões com expressões numéricas. Isso garante que os campos tenham apenas o tamanho estritamente necessário.

Exemplo:


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

♥ Doe para nosso projeto! ♥