Module
Contenu
Index 🔎︎

# Instruction Dim

Déclare une variable ou une matrice.

Si les variables sont séparées par des virgules (par exemple DIM sPar1, sPar2, sPar3 AS STRING), seules les variables de variant peuvent être définies. Utilisez une ligne de définition pour chaque variable.

    Dim sPar1 As String
    Dim sPar2 As String
    Dim sPar3 As String

Dim déclare les variables locales dans des sous-routines. Les variables globales sont déclarées avec l'instruction PUBLIC ou PRIVATE.

## Syntaxe :

    [ReDim]Dim VarName [(start To end)] [As VarType][, VarName2 [(start To end)] [As VarType][,...]]

## Paramètres :

VarName : tout nom de variable ou de matrice.

Start, End : valeurs numériques ou constantes définissant le nombre d'éléments (NumberElements=(end-start)+1) et la plage d'index.

Si ReDim est appliquée au niveau de la procédure, les paramètres Start et End peuvent être des expressions numériques.

VarType : mot-clé déclarant le type de données d'une variable.

Keyword : type de variable

Bool : variable logique (True, False)

Currency : variable au format monétaire (monnaie 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 d'objet (Remarque : cette variable peut uniquement être définie par la suite avec le mot-clé Set !)

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

String : variable de chaîne comprenant au maximum 64 000 caractères ASCII.

[Variant] : variable de type variant (contient tous les types spécifiés dans la définition). Si aucun mot-clé n'est spécifié, les variables sont automatiquement définies comme étant de type variant, excepté si une instruction de DefBool à DefVar est utilisée.

Dans LibreOffice Basic, il n'est pas nécessaire de déclarer les variables explicitement. Toutefois, vous devez déclarer une matrice avant de pouvoir les utiliser. Vous pouvez déclarer une variable avec l'instruction Dim en utilisant des virgules pour séparer les différentes déclarations. Pour déclarer un type de variable, saisissez le caractère de déclaration de type après son nom ou utilisez le mot-clé correspondant.

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 matrices sont déclarées avec l'instruction Dim. Il existe deux méthodes pour définir la plage d'index :

DIM text(20) as String REM 21 éléments numérotés de 0 à 20

DIM text(5 to 25) as String REM 21 éléments numérotés de 5 à 25

DIM text(-15 to 5) as String REM 21 éléments (0 compris)

REM Numérotés de -15 à 5

Champ de données en deux dimensions

DIM text(20,2) as String REM 63 éléments ; de 0 à 20 niveau 1, de 0 à 20 niveau 2 et de 0 à 20 niveau 3.

Vous pouvez déclarer un type de matrice comme dynamique si une instruction ReDim définit le nombre de dimensions dans la sous-routine ou la fonction contenant la matrice. En règle générale, la dimension de la matrice ne peut être définie qu'une seule fois et vous ne pouvez pas la modifier. Dans une sous-routine, vous pouvez déclarer une matrice avec l'instruction ReDim. Vous ne pouvez définir les dimensions qu'avec des expressions numériques. Cela garantit que les champs ne dépassent pas la taille 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