Contenuto
Indice 🔎︎

# Istruzione Dim

Dichiara variabili o matrici.

Se le variabili sono separate da virgole - per esempio Dim v1, v2, v3 As String - le prime vengono definite come variabili Variant. Un'interruzione di riga o il simbolo dei due punti (:) aiutano a tenere separate le definizioni delle variabili.

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

Dim dichiara le variabili locali all'interno delle subroutine. Le variabili globali vengono dichiarate con l'istruzione Global, Public o Private.

### Sintassi:

    Dim variabile [(inizio To fine)] [As typename][, variabile2[char] [(inizio To fine)] [,...]]

### Parametri:

variable: nome di una variabile o di una matrice.

typename: parola chiave che dichiara il tipo di dati di una variabile.

Byte: variabile di tipo Byte (0-255)

Boolean: variabile di tipo booleano (Vero, Falso)

Currency: variabile per valuta (con 4 cifre decimali)

Date: variabile per data

Double: variabile a virgola mobile con doppia precisione (1.79769313486232 x 10E308 - 4.94065645841247 x 10E-324)

Integer: variabile numerica intera (compresa tra -32768 e 32767)

Long: variabile numerica intera lunga (compresa tra -2.147.483.648 e 2.147.483.647)

Object: variabile oggetto (nota: questa variabile può essere definita solo con Set!)

Single: variabile numerica decimale con precisione singola (compresa tra 3,402823 x 10E308 e 1,401298 x 10E-45).

String: variabile stringa contenente fino a un massimo di 64.000 caratteri ASCII.

Variant: tipo di variabile variante (contiene tutti i tipi ed è specificata dalla definizione). Se non è specificato il nome di un tipo, a meno che non venga utilizzata un'istruzione da DefBool a DefVar, alle variabili viene assegnato automaticamente il tipo Variant.

object: oggetto di tipo 'Universal Network Object' (UNO) o istanza di un oggetto ClassModule.

char: carattere speciale che dichiara il tipo di dati di una variabile.

In LibreOffice Basic non dovete dichiarare esplicitamente le variabili. Dovete invece dichiarare le matrici prima di poterle usare. Potete dichiarare una variabile con l'istruzione Dim, usando delle virgole (,) per separare dichiarazioni in serie. Per dichiarare il tipo di una variabile inserite un carattere di identificazione del tipo seguito dal nome della variabile oppure usate la parola chiave che indica il nome del tipo.

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

array: dichiarazione matrice.

start, end: valori numerici o costanti che definiscono il numero di elementi (NumberElements=(end-start)+1) e l'intervallo dell'indice.

start e end possono essere espressioni numeriche, se ReDim è applicato a livello della procedura.

LibreOffice Basic supporta le matrici a una o più dimensioni definite da un tipo di variabile specifico. L'uso delle matrici è appropriato se il programma contiene elenchi o tabelle da modificare. Il vantaggio delle matrici è che consentono di fare riferimento a singoli elementi in base agli indici, che possono essere formulati come espressioni numeriche o come variabili.

Le matrici vengono dichiarate con l'istruzione Dim. Potete procedere in più modi per definire l'intervallo degli indici:

      Dim text(20) As String ' 21 elementi numerati da 0 a 20
      Dim value(5 to 25) As Integer ' 21 valori numerati da 5 a 25
      Dim ammontare(-15 to 5) As Currency ' 21 valori (compreso lo 0), numerati da -15 a 5
      REM Campo di dati bidimensionale
      Dim tabella$(20,2) ' 63 elementi; da 0 a 20 livello 1, da 0 a 20 livello 2 e da 0 a 20 livello 3.

Potete dichiarare una matrice di tipo dinamico se un'istruzione ReDim definisce il numero di dimensioni della subroutine o la funzione che contiene la matrice. In genere, potete definire le dimensioni della matrice una sola volta e non potete modificarle successivamente. All'interno di una subroutine, potete dichiarare una matrice con ReDim. Per definire le dimensioni potete usare solo espressioni numeriche. In questo modo si garantisce che i campi non superino la dimensione necessaria.

### Esempio:

    Sub ExampleDim1
    Dim sVar As String
    Dim iVar As Integer
        sVar = "Office"
    End Sub

    Sub ExampleDim2
      ' Campo di dati bidimensionale
        Dim stext(20,2) As String
      Const sDim As String = " Dimensione:"
      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

Argomenti correlati

Operatore New