Conteúdo
Índice 🔎︎

# Instrução Dim

Declara uma variável ou uma matriz.

Se as variáveis estiverem separadas por vírgulas (por exemplo, DIM sPar1, sPar2, sPar3 AS STRING), só as variáveis variantes podem ser definidas. Utilize uma linha de definição diferente para cada variável.

    Dim sPar1 As String
    Dim sPar2 As String
    Dim sPar3 As String

A instrução Dim define como locais as variáveis pertencentes às sub-rotina. As variáveis globais são declaradas através da instrução PUBLIC ou PRIVATE.

## Sintaxe:

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

## 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 aplicada no nível do procedimento.

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

Palavra-chave: tipo de variável

Bool: Variável booleana (True, False)

Moeda: variável em formato monetário (com 4 casas decimais)

Data: Variável da data

Duplo: Variável de vírgula flutuante de precisão dupla (1,79769313486232 x 10E308 - 4,94065645841247 x 10E-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 (Nota: esta variável só pode ser definida posteriormente em Set!)

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

Cadeia: variável de cadeia constituída por um máximo de 64.000 caracteres ASCII.

[Variante]: variável de tipo variante (contém todos os tipos especificados por definição). Se não houver uma palavra-chave especificada, as variáveis são automaticamente definidas como sendo do tipo variante, a menos que seja utilizada uma instrução de DefBool a DefVar.

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.

As matrizes são definidas através da instrução Dim. Existem dois métodos para definir o intervalo de índice:

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

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

DIM text(-15 to 5) as String REM 21 elementos (incluindo o 0)

REM numerados de -15 a 5

Campo de entrada bidimensional

DIM text(20,2) as String REM 63 elementos; de 0 a 20 nível 1, de 0 a 20 nível 2 e de 0 a 20 nível 3.

Pode definir um tipo matricial como dinâmico, se uma instrução ReDim definir o número de dimensões na sub-rotina ou a função que contém a matriz. Normalmente, só pode definir uma vez a dimensão de uma matriz e não a pode modificar. Dentro de uma sub-rotina, pode definir uma matriz através de ReDim. Só pode definir dimensões através de expressões numéricas. Isto garante que os campos só têm o tamanho necessário.

## Exemplo:

    Sub ExampleDim1
    Dim sVar As String
    Dim iVar As Integer
        sVar = "Escritório"
    End Sub

    Sub ExampleDim2
    ' Campo de dados bidimensional
    Dim stext(20,2) As String
    Const sDim As String = " Dimensão:"
    For i = 0 To 20
        For ii = 0 To 2
            stext(i,ii) = str(i) & sDim & str(ii)
        Next ii
    Next i
    For i = 0 To 20
        For ii = 0 To 2
            MsgBox stext(i,ii)
        Next ii
    Next i
    End Sub