Dim, instruction

Déclare des variables et attribue de l’espace de stockage.

Syntaxe

Dim [ WithEvents ] varname [ [ indices ] ) ] ] [ As [ New ] type ] [ , [ WithEvents ] varname [ ( [ indices ] ) ) ] ] [ As [ New ] type ]] . . . .

La syntaxe de l’instruction Dim comprend les éléments suivants :

Élément Description
WithEvents Facultatif. Mot clé indiquant que l’argument varname est une variable objet utilisée pour répondre aux événements déclenchés par un objet ActiveX. WithEvents est valide uniquement dans les modules de classe. Vous pouvez déclarer autant de variables individuelles que vous le souhaitez à l’aide de WithEvents, mais vous ne pouvez pas créer de tableaux avec WithEvents. You can't use New with WithEvents.
varname Obligatoire. Nom de la variable ; respecte les conventions d'affectation des noms de variables standard.
subscripts Facultatif. Dimensions d'une variable tableau ; vous pouvez déclarer jusqu'à 60 dimensions. L’argument indices utilise la syntaxe suivante : [ lowerTo ] upper [ , [ lowerTo ] upper ] . ..

Lorsque pas explicitement indiqué dans lower, la limite inférieure d’une matrice est contrôlée par la déclarationOption Base. La limite inférieure correspond à zéro si aucune instructionOption Base n’est présente.
New Facultatif. Mot clé qui autorise la création implicite d’un objet. Si vous utilisez New lors de la déclaration de la variable objet, une nouvelle instance de l’objet est créée lors de la première référence à celle-ci. Vous n’avez donc pas besoin d’utiliser l’instruction Set pour affecter la référence d’objet.

Le mot clé New ne peut pas être utilisé pour déclarer des variables d’un type de données intrinsèque ou pour déclarer des instances d’objets dépendants, ni avec WithEvents.
type Facultatif. Type de données de la variable ; Peut être Byte, Boolean, Integer, Long, Currency, Single, Double, Decimal (non pris en charge actuellement), Date, String (pour les chaînes de longueur variable), Stringlength (pour les chaînes de longueur fixe), Object, Variant, un type défini par l’utilisateur ou un type d’objet. Utilisez une clause detype As distincte pour chaque variable que vous déclarez.

Remarques

Les variables déclarées à l’aide de l’instruction Dim au niveau module sont disponibles pour toutes les procédures du module. Au niveau procédure, les variables ne sont disponibles qu’au sein de la procédure.

Utilisez l’instruction Dim au niveau du module ou de la procédure pour déclarer le type de données d’une variable. Par exemple, l'instruction suivante déclare une variable comme variable de type Integer.

Dim NumberOfEmployees As Integer 

Vous pouvez aussi utiliser une instruction Dim pour déclarer le type objet d’une variable. L’instruction suivante déclare une variable pour une nouvelle instance d’une feuille de calcul.

Dim X As New Worksheet 

Si le mot clé New n’est pas utilisé lors de la déclaration d’une variable objet, la variable qui fait référence à l’objet doit se voir attribuer un objet existant à l’aide de l’instruction Set avant de pouvoir l’utiliser. Jusqu'à ce qu'elle soit attribuée à un objet, la variable objet déclarée a la valeur spéciale Nothing, qui indique qu'elle ne fait référence à aucune instance spécifique d'un objet.

Vous pouvez également utiliser l’instruction Dim suivie de parenthèses vides pour déclarer un tableau dynamique. Après avoir déclaré un tableau dynamique, utilisez l’instruction ReDim dans une procédure pour définir le nombre de dimensions et d’éléments dans le tableau. Si vous essayez de redéclarer une dimension pour une variable de tableau dont la taille a été explicitement spécifiée dans une instruction Private, Public ou Dim , une erreur se produit.

Si vous ne spécifiez pas de type de données ou de type d’objet et qu’il n’existe aucune instruction Def_type_ dans le module, la variable est Variant par défaut. Lorsque les variables sont initialisées, une variable numérique est initialisée à 0, une chaîne de longueur variable est initialisée à une chaîne vide ("") et une chaîne de longueur fixe est remplie de zéros. Les variables de type Variant sont initialisées à la valeur Empty. Chaque élément d'une variable de type défini par l'utilisateur est initialisé comme s'il s'agissait d'une variable distincte.

Remarque

Lorsque vous utilisez l’instruction Dim dans une procédure, vous placez généralement l’instruction Dim au début de la procédure.

Exemple

Cet exemple montre l’instruction Dim utilisée pour déclarer des variables. It also shows the Dim statement used to declare arrays. La limite inférieure par défaut pour les indices de tableau est 0 et peut être remplacée au niveau du module à l’aide de l’instruction Option Base .

' AnyValue and MyValue are declared as Variant by default with values 
' set to Empty. 
Dim AnyValue, MyValue 
 
' Explicitly declare a variable of type Integer. 
Dim Number As Integer 
 
' Multiple declarations on a single line. AnotherVar is of type Variant 
' because its type is omitted. 
Dim AnotherVar, Choice As Boolean, BirthDate As Date 
 
' DayArray is an array of Variants with 51 elements indexed, from 
' 0 thru 50, assuming Option Base is set to 0 (default) for 
' the current module. 
Dim DayArray(50) 
 
' Matrix is a two-dimensional array of integers. 
Dim Matrix(3, 4)As Integer 
 
' MyMatrix is a three-dimensional array of doubles with explicit 
' bounds. 
Dim MyMatrix(1 To 5, 4 To 9, 3 To 5)As Double 
 
' BirthDay is an array of dates with indexes from 1 to 10. 
Dim BirthDay(1 To 10)As Date 
 
' MyArray is a dynamic array of variants. 
Dim MyArray()

Voir aussi

Assistance et commentaires

Avez-vous des questions ou des commentaires sur Office VBA ou sur cette documentation ? Consultez la rubrique concernant l’assistance pour Office VBA et l’envoi de commentaires afin d’obtenir des instructions pour recevoir une assistance et envoyer vos commentaires.