Módulo
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), somente as variáveis Variant poderão ser definidas. Use uma linha de definição separada para cada variável.

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

A instrução Dim declara as variáveis locais dentro de sub-rotinas. As variáveis globais são declaradas com a instrução PUBLIC ou PRIVATE.

## Sintaxe:

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

## 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 poderão ser expressões numéricas se ReDim for aplicado no nível do procedimento.

VarType: palavra-chave que declara o tipo de dados de uma variável.

Palavra-chave: tipo de variável

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

Currency: variável de formato monetário (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 variante (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.

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.

As matrizes são declaradas na instrução Dim. Existem dois métodos para definir o intervalo do índice:

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

Campo de dados bidimensionais

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.

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 ExampleDim1
    Dim sVar As String
    Dim iVar As Integer
        sVar = "Office"
    End Sub

    Sub ExampleDim2
    ' Campo de dados bidimensionais
    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