Módulo
Conteúdo
Índice 🔎︎

# Utilizar variáveis

A utilização básica das variáveis do LibreOffice Basic é descrita a seguir.

## Convenções de nomenclatura de variáveis

O nome da variável pode conter no máximo 255 caracteres. O primeiro caractere no nome da variável deve ser uma letra de A até Z ou de a até z. Também é possível usar números no nome da variável, mas, com exceção do caractere de sublinhado ("_"), não serão permitidos símbolos de pontuação nem caracteres especiais. No LibreOffice Basic, os identificadores de variáveis não fazem distinção entre maiúsculas e minúsculas. Os nomes de variáveis podem conter espaços, mas, nesse caso, eles deverão ser incluídos entre colchetes.

Exemplos de identificadores de variáveis:

    MyNumber=5
| Correto
    MyNumber5=15
| Correto
    MyNumber_5=20
| Correto
    My Number=20
| Incorreto; as variáveis que contêm espaços devem ser incluídas entre colchetes
    [My Number]=12
| Correto
    DéjàVu=25
| Incorreto; não são permitidos caracteres especiais
    5MyNumber=12
| Incorreto; não é permitido usar número no início da variável
    Number,Mine=12
| Incorreto; não são permitidas marcas de pontuação

## Declarar variáveis

No LibreOffice Basic, você não precisa declarar explicitamente as variáveis. É possível declarar a variável por meio de uma instrução Dim. Você pode declarar mais de uma variável por vez, separando os nomes por vírgulas. Para definir o tipo de variável, utilize um sinal de declaração de tipo após o nome da variável ou use a palavra-chave apropriada.

Exemplos de declarações de variáveis:

    Dim a$
| Declara a variável "a" como String
    Dim a As String
| Declara a variável "a" como String
    Dim a$, b As Integer
| Declara uma variável como String e a outra como Integer
    Dim c As Boolean
| Declara «c» como uma variável lógica que pode ser VERDADEIRO ou FALSO

Ao declarar variáveis, é extremamente importante que você use sempre o caractere de declaração de tipo, mesmo que ele já tenha sido usado na declaração (no lugar de uma palavra-chave). Desse modo, as seguintes instruções serão inválidas:

    Dim a$
| Declara "a" como String
    a="TestString"
| Ausência de declaração de tipo: "a$="

Depois de declarar uma variável como de um tipo específico, você não poderá declará-la novamente como um tipo diferente!

### Forçar a declaração de variáveis

Para forçar a declaração de variáveis, use o seguinte comando:

    Option Explicit

A instrução Option Explicit precisa ser a primeira linha no módulo, antes da primeira SUB. De modo geral, somente as matrizes precisam ser declaradas explicitamente. Todas as outras variáveis são declaradas de acordo com o caractere de declaração de tipo ou (se este for omitido) como o tipo padrão Single.

## Tipos de variáveis

O LibreOffice Basic oferece suporte a quatro classes de variáveis:

- As variáveis numéricas podem conter valores numéricos. Algumas variáveis são usadas para armazenar números grandes ou pequenos, ao passo que outras armazenam números fracionários ou de ponto flutuante.

- As variáveis String contêm cadeias de caracteres.

- Lógico — as variáveis contêm o valor VERDADEIRO (TRUE) ou FALSO (FALSE).

- As variáveis Object podem armazenar objetos de vários tipos, como tabelas e documentos dentro de um documento.

### Variáveis tipo Integer

As variáveis de número inteiro abrangem o intervalo -32768 a 32767. Se você atribuir um valor de ponto flutuante a uma variável de número inteiro, as casas decimais serão arredondadas para o número inteiro mais próximo. Essas variáveis são calculadas rapidamente nos procedimentos e são apropriadas para contadores em comandos de repetição. Essas variáveis só requerem dois bytes de memória. O caractere de declaração de tipo dessas variáveis é o "%".

    Dim Variable%

    Dim Variable As Integer

### Variáveis tipo Long Integer

As variáveis de números inteiros longos abrangem o intervalo -2147483648 a 2147483647. Se você atribuir um valor de ponto flutuante a uma variável de número inteiro longo, as casas decimais serão arredondadas para o número inteiro mais próximo. Essas variáveis são calculadas rapidamente nos procedimentos e são apropriadas para contadores em comandos de repetição com valores maiores. Essas variáveis requerem quatro bytes de memória. O caractere de declaração de tipo dessas variáveis é o "&".

    Dim Variable&

    Dim Variable As Long

### Variáveis tipo Decimal

Variáveis decimais podem ter números positivos ou negativos ou zero. A precisão vai até 29 dígitos.

Você também pode usar o sinal de mais (+) ou menos (-) como prefixos para números decimais (com ou sem espaços).

Se um número decimal for atribuído a uma variável inteira, o LibreOffice Basic arredondará o número para cima ou para baixo.

### Variáveis tipo Single

Variáveis do tipo Single podem conter valores positivos ou negativos entre 3.402823 x 10E38 e 1.401298 x 10E-45. Variáveis do tipo Single são variáveis de ponto flutuante onde a precisão decimal diminui quando a parte não decimal aumenta. Variáveis Single são apropriadas para cálculos matemáticos de precisão mediana. Cálculos precisam de mais tempo que para variáveis do tipo Integer mas são mais rápidos que com variáveis do tipo Double. Uma variável Single requer 4 bytes de memória. O caractere de declaração de tipo é "!".

    Dim Variable!

    Dim Variable As Single

### Variáveis tipo Double

Variáveis do tipo double podem receber valores positivos ou negativos entre 1.79769313486232 x 10E308 até 4.94065645841247 x 10E-324. Variáveis do tipo double são variáveis de ponto flutuante onde a precisão decimal diminui à medida que a parte não decimal aumenta. Variáveis do tipo double são úteis para cálculos precisos. Cálculos precisam de mais tempo que para variáveis do tipo Single. Uma variável do tipo double requer 8 bytes de memória. O caractere de declaração de tipo é "#".

    Dim Variable#

    Dim Variable As Double

### Variáveis tipo Currency

Variáveis Currency (monetárias) são armazenadas internamente como números de 64 bits (8 Bytes) e exibidos como um número decimal fixo com 15 casas não decimais e 4 decimais. Os valores variam de -922337203685477.5808 a +922337203685477.5807. Variáveis Currency são usadas para calcular valores monetários com alta precisão. O caractere de declaração de tipo é "@".

    Dim Variable@

    Dim Variable As Currency

### Variáveis tipo String

As variáveis String podem armazenar cadeias de até 65.535 caracteres. Cada caractere é armazenado como seu valor Unicode correspondente. As variáveis String são indicadas para o processamento de textos em programas e para o armazenamento temporário de caracteres não imprimíveis de até 64 Kbytes (máximo). A memória exigida para o armazenamento dessas variáveis dependerá do número de caracteres contidos na variável. O caractere de declaração de tipo dessas variáveis é o "$".

    Dim Variable$

    Dim Variable As String

### Variáveis tipo lógica

As variáveis lógicas armazenam apenas um destes valores: VERDADEIRO (TRUE) ou FALSO (FALSE). Um número 0 é avaliado como FALSO, ao passo que os outros valores são avaliados como VERDADEIRO.

    Dim Variable As Boolean

### Variáveis tipo Date

Variáveis de data podem conter apenas valores de data e hora armazenados em um formato interno. Valores atribuídos a variáveis de tipo Data Dateserial, Datevalue, Timeserial ou Timevalue são convertidas automaticamente para o formato interno. Variáveis de tipo Data são convertidas para números normais utilizando-se a função Day, Month, Year ou Hour, Minute, Second. O formato interno permite uma comparação de valores de data/hora calculando a diferença entre dois números. Essas variáveis podem ser declaradas apenas com a palavra-chave Date.

    Dim Variable As Date

## Valores iniciais da variável

Uma vez declarada a variável, seu valor é automaticamente definido como "Null". Observe as seguintes convenções:

As variáveis numéricas receberão automaticamente o valor "0" assim que forem declaradas.

Variáveis de data tem o valor inicializado internamente para 0; equivalente a converter o valor para "0" com a função Day, Month, Year ou Hour, Minute, Second.

As variáveis String receberão uma cadeia de caracteres vazia ("") quando forem declaradas.

## Matrizes

O LibreOffice Basic reconhece matrizes uni ou multidimensionais definidas por um tipo de variável especificada. As matrizes são úteis para editar listas e tabelas em programas. É possível fazer referência a elementos individuais de uma matriz por meio de um índice numérico.

Para declarar uma matriz, é obrigatório utilizar a instrução Dim. Existem várias maneiras de definir o intervalo de índice de uma matriz:

    Dim Text$(20)
| 21 elementos numerados de 0 a 20
    Dim Text$(5,4)
| 30 elementos (uma matriz de 6 x 5 elementos)
    Dim Text$(5 To 25)
| 21 elementos numerados de 5 a 25
    Dim Text$(-15 To 5)
| 21 elementos (incluindo 0), numerados de -15 a 5

O intervalo do índice pode incluir tanto números positivos como negativos.

## Constantes

As constantes têm um valor fixo. Elas são definidas apenas uma vez no programa e não poderão ser redefinidas posteriormente:

    Const ConstName=Expression