Istruzione Dim

Dichiara variabili o matrici.

If the variables are separated by commas - for example Dim v1, v2, v3 As String - first ones get defined as Variant variables. A new line, or colon sign (:), help separate variable definitions.


  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 variable [(start To end)] [As typename][, variable2[char] [(start To end)] [,...]]

Parametri:

variable: nome di una variabile o di una matrice.

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

primitive data types fragment

Byte: Byte variable (0-255)

Boolean: Boolean variable (True, False)

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: Universal Network object (UNO) object or ClassModule object instance.

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

Type declaration characters fragment

In LibreOffice Basic, you do not need to declare variables explicitly. However, you need to declare arrays before you can use them. You can declare a variable with the Dim statement, using commas (,) to separate multiple declarations. To declare a variable type, enter a type-declaration character following the name or use a corresponding type keyword name.

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.

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

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 amount(-15 to 5) As Currency ' 21 amounts (including 0), numbered from -15 to 5
  REM Campo di dati bidimensionale
  Dim table$(20,2) ' 63 items; from 0 to 20 level 1, from 0 to 20 level 2 and from 0 to 20 level 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