Conteúdo

# Instrução Dim

Declara variáveis ou matrizes.

Se as variáveis forem separadas por vírgulas — por exemplo, Dim v1, v2, v3 As String —, as primeiras são definidas como variáveis do tipo Variant. Uma nova linha ou o sinal de dois pontos (:) ajudam a separar as definições das variáveis.

      Dim text As String
      Dim pv As com.sun.star.beans.PropertyValue, d As Date
      Dim Units as Integer : Dim EULER As Double

Dim declara variáveis locais dentro de sub-rotinas. As variáveis globais são declaradas com as instruções Global, Public ou Private.

### Sintaxe:

    Dim variable [(start To end)] [As typename][, variable2[char] [(start To end)] [,...]]

O operador New é opcional ao definir a opção Option Compatible.

### Parâmetros:

variável: Qualquer nome de variável ou de matriz.

typename: Palavra-chave que declara o tipo de dados de uma variável.

Byte: Variável de tipo byte (0-255)

Booleano: Variável booleana (True, False)

Moeda: Variável de moeda (moeda com 4 casas decimais)

Data: Variável da data

Double: Variável de ponto flutuante de dupla precisão (1,79769313486232 × 10E308 – 4,94065645841247 × 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)

Object: Variável de objeto (Nota: esta variável só pode ser definida posteriormente com Set!)

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

String: Variável de tipo String composta por um máximo de 2 147 483 647 caracteres.

Variant: Tipo de variável Variant (inclui todos os tipos, conforme especificado por definição). Se não for especificado um nome de tipo, as variáveis são automaticamente definidas como do tipo Variant, a menos que seja utilizada uma instrução entre DefBool e DefVar.

objeto: objeto Universal Network (UNO) ou instância do objeto ClassModule.

char: Carácter especial que declara o tipo de dados de uma variável.

No LibreOffice Basic, não é necessário declarar variáveis explicitamente. No entanto, é necessário declarar matrizes antes de as poder utilizar. Pode declarar uma variável com a instrução Dim, utilizando vírgulas (,) para separar várias declarações. Para declarar o tipo de uma variável, introduza um caractere de declaração de tipo a seguir ao nome ou utilize o nome da palavra-chave de tipo correspondente.

Declaration character | Variable type name
--- | ---
% | Integer
& | Long
! | Single
# | Double
$ | String
@ | Currency

array: Declaração de um array.

início, fim: Valores numéricos ou constantes que definem o número de elementos (NumberElements=(fim-início)+1) e o intervalo de índices.

start e end podem ser expressões numéricas se ReDim for aplicado ao nível do procedimento.

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.

Os tabulares são declarados com a instrução Dim. Existem várias formas de definir o intervalo de índices:

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

É possível declarar um tipo de matriz como dinâmico se uma instrução ReDim definir o número de dimensões na sub-rotina ou na função que contém a matriz. Geralmente, só é possível definir uma dimensão da matriz uma vez, não sendo possível alterá-la. Dentro de uma sub-rotina, é possível declarar uma matriz com ReDim. As dimensões só podem ser definidas com expressões numéricas. Isto garante que os campos tenham apenas o tamanho necessário.

### Exemplo:

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

Tópicos relacionados

Novo Operador

Necessitamos da sua ajuda!