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=20      'Correto'
        My Number=20      'Incorreto, uma variável com espaço deve ser incluída entre colchetes'
        [My Number]=12      'Correto'
        DéjàVu=25       'Inválido, caracteres especiais não são permitidos'
        5MyNumber=12    'Inválido, a variável não pode começar com um número'
        Number,Mine=12  'Inválido, marcas de pontuação não são permitidas'

## 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 variável "a" como um String'
        Dim a As String      'Declara a variável  "a" como um String'
        Dim a$, b As Integer 'Declara uma variável como um String e uma como Integer'
        Dim c As Boolean     'Declara c como variável Boolean que pode tomar valores VERDADEIRO ou FALSO'

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 Single podem tomar valores positivos ou negativos no intervalo 3.402823 x 10E38 a 1.401298 x 10E-45. Variáveis Single são variáveis de ponto flutuante, nas quais a precisão decimal diminui por que a parte não decimal aumenta. Variáveis Single são adequadas para cálculos matemáticos de precisão média. Os cálculos requerem mais tempo do que variáveis Integer, mas são mais rápidas que os cálculos com variáveis 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 Double podem tomar valores positivos ou negativos no intervalo 1,79769313486232 x 10E308 até 4,94065645841247 x 10E-324. Variáveis Double são variáveis de ponto flutuante, nas quais a precisão diminui quando a parte não decimal aumenta. Variáveis Double são adequadas para cálculos precisos. Os cálculos requerem mais tempo que as variáveis Single. Uma variáveis 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

### Literais para Inteiros

Números podem ser codificados em formato octal ou hexadecimal.

      xi = &o13 '    8 + 3
      ci = &h65 ' 6*16 + 5
      MAX_Integer =  &o77777 '  32767 = &h7FFF
      MIN_Integer = &o100000 ' -32768 = &h8000
      MAX_Long = &h7fffffff '  2147483647 = &o17777777777
      MIN_Long = &h80000000 ' -2147483648 = &o20000000000

### 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