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:

Diagrama da instrução Dim


Dim variable [(start To end)] [As typename][, variable2[char] [(start To end)] [,...]]
Ícone da dica

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.

fragmento de tipos de dados primitivos

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.

Fragmento de caracteres de declaração de tipo

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.

fragmento de matriz

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
Necessitamos da sua ajuda!

Necessitamos da sua ajuda!