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:

Diagramma istruzione Dim


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

L'operatore New è opzionale se è impostata l'opzione Compatible.


Parametri:

variable: nome di una variabile o di una matrice.

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

frammento di tipi di dati primitivi

Byte: variabile di tipo Byte (0-255)

Boolean: variabile di tipo booleano (Vero, Falso)

Currency: variabile per valuta (con quattro 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.

Frammento di caratteri di dichiarazione del tipo

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.

Frammento 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

Sosteneteci!