Contenu

# Instruction Dim

Déclare des variables ou des tableaux

Si les variables sont séparées par des virgules - par exemple Dim v1, v2, v3 As String - les premières sont définies comme variables Variant. Une nouvelle ligne, ou signe deux-points (: ), aide à séparer les définitions de variables.

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

Dim déclare des variables locales dans les sous-programmes. Les variables globales sont déclarées avec l'instruction Global, Public ou Private.

### Syntaxe :

    Dim variable [(début à fin)] [As typename][, variable2[char] [(début à fin)] [,...]]

L'opérateur New est facultatif lors de la définition de l'option Option Compatible.

### Paramètres :

variable:Tout nom de variable ou de tableau.

typename: Mot clé qui déclare le type de données d'une variable.

Byte: Variable de type octet (0-255)

Boolean: Variable de type booleen (True, False)

Currency: Variable de type devise (Devise avec 4 décimales)

Date : variable de date

Double: Variable à virgule flottante double précision (1,79769313486232 x 10E308 - 4,94065645841247 x 10E-324)

Integer : variable au format nombre entier (-32768 - 32767)

Long : variable au format nombre entier long (-2.147.483.648 - 2.147.483.647)

Object: Variable objet (Remarque: cette variable ne peut être définie par la suite qu'avec Set!)

Single : variable à virgule flottante simple précision (3,402823 x 10E38 - 1,401298 x 10E-45).

String : variable de chaîne composée d'un maximum de 2 147 483 647 caractères.

Variant:Type de variable variant (contient tous les types, spécifiés par définition). Si aucun nom de type n'est spécifié, les variables sont automatiquement définies comme Type Variant, sauf si une instruction de DefBool à DefVar est utilisée.

object: Objet Universal Network object (UNO) ou instance de ClassModule.

char: Caractère spécial qui déclare le type de données d'une variable.

Dans LibreOffice Basic, vous n'avez pas besoin de déclarer explicitement des variables. Cependant, vous devez déclarer des tableaux avant de pouvoir les utiliser. Vous pouvez déclarer une variable avec l'instruction Dim, en utilisant des virgules (, ) pour séparer plusieurs déclarations. Pour déclarer un type de variable, entrez un caractère de déclaration de type après le nom ou utilisez un nom de mot-clé de type correspondant.

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

array: Déclaration de tableau.

start, end: Valeurs numériques ou constantes qui définissent le nombre d'éléments (NombreElements = (end-start) +1) et la plage d'index.

start and end peuvent être des expressions numériques si ReDim est appliqué dans la procédure.

LibreOffice Basic supporte les matrices unidimensionnelles ou multidimensionnelles définies par un type de variable spécifié. Les matrices peuvent être utilisées si le programme comprend des listes ou des tables à éditer. L'avantage des matrices est qu'elles permettent d'appeler des éléments individuels à partir d'index, lesquels peuvent être formulés comme expressions numériques ou variables.

Les tableaux sont déclarés avec l'instruction Dim. Il existe plusieurs façons de définir la plage d'index :

      Dim text(20) As String ' 21 éléments numérotés de 0 à 20
      Dim value(5 to 25) As Integer ' 21 valeurs numérotées de 5 à 25
      Dim montant(-15 to 5) As Currency ' 21 montants(0 inclus),numérotés de  -15 à 5
      REM Champ de données bidimensionnel
      Dim table$(20,2) ' 63 items; de 0 à 20 niveau 1, de 0 à 20 niveau 2 et de  0 à 20 niveau 3.

Vous pouvez déclarer un type de tableau dynamique si une instruction ReDim définit le nombre de dimensions dans le sous-programme ou la fonction qui contient le tableau. En règle générale, vous ne pouvez définir une dimension de tableau qu'une seule fois et vous ne pouvez pas la modifier. Dans un sous-programme, vous pouvez déclarer un tableau avec ReDim. Vous ne pouvez définir des dimensions qu'avec des expressions numériques. Cela garantit que les champs sont aussi grands que nécessaire.

### Exemple :

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

    Sub ExampleDim2
      ' Champ de données en deux dimensions
        Dim stext(20,2) As String
      Const sDim as String = " Dimension :"
      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

Rubriques connexes

Opérateur New