Notes
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Normalement, une variable est dans l’étendue ou visible pour référence, dans toute la région dans laquelle vous la déclarez. Dans certains cas, le niveau d’accès de la variable peut influencer son étendue.
Pour plus d'informations, consultez Scope in Visual Basic.
Étendue au niveau du bloc ou de la procédure
Pour rendre une variable visible uniquement dans un bloc
Placez l’instruction Dim pour la variable entre les instructions de déclaration initiale et finale de ce bloc, par exemple entre les instructions
For
etNext
d’une boucleFor
.Vous pouvez faire référence à la variable uniquement à partir du bloc.
Pour rendre une variable visible uniquement dans une procédure
Placez l’instruction
Dim
pour la variable à l’intérieur de la procédure, mais en dehors de tout bloc (tel qu’un blocWith
...End With
).Vous pouvez faire référence à la variable uniquement à partir de la procédure, y compris à l’intérieur de n’importe quel bloc contenu dans la procédure.
Étendue au niveau du module ou de l’espace de noms
Pour des raisons pratiques, le niveau de module à terme unique s’applique également aux modules, aux classes et aux structures. Le niveau d’accès d’une variable de niveau module détermine son étendue. L’espace de noms qui contient le module, la classe ou la structure influence également l’étendue.
Pour rendre une variable visible dans un module, une classe ou une structure
Placez l’instruction
Dim
pour la variable à l’intérieur du module, de la classe ou de la structure, mais en dehors de toute procédure.Incluez le mot clé Private dans l’instruction
Dim
.Vous pouvez faire référence à la variable n’importe où dans le module, la classe ou la structure, mais pas à partir de l’extérieur.
Pour rendre une variable visible dans un espace de noms
Placez l’instruction
Dim
pour la variable à l’intérieur du module, de la classe ou de la structure, mais en dehors de toute procédure.Incluez le mot clé Friend ou Public dans l’instruction
Dim
.Vous pouvez faire référence à la variable à partir de n’importe où dans l’espace de noms contenant le module, la classe ou la structure.
Exemple :
L’exemple suivant déclare une variable au niveau du module et limite sa visibilité au code dans le module.
Module demonstrateScope
Private strMsg As String
Sub initializePrivateVariable()
strMsg = "This variable cannot be used outside this module."
End Sub
Sub usePrivateVariable()
MsgBox(strMsg)
End Sub
End Module
Dans l’exemple précédent, toutes les procédures définies dans le module demonstrateScope
peuvent faire référence à la String
variable strMsg
. Lorsque la usePrivateVariable
procédure est appelée, elle affiche le contenu de la variable strMsg
de chaîne dans une boîte de dialogue.
Avec la modification suivante de l’exemple précédent, la variable strMsg
de chaîne peut être référencée par du code n’importe où dans l’espace de noms de sa déclaration.
Public strMsg As String
Programmation robuste
Plus l’étendue d’une variable est réduite, moins vous avez d’opportunités pour faire référence accidentellement à celle-ci à la place d’une autre variable portant le même nom. Vous pouvez également réduire les problèmes de correspondance de référence.
Sécurité du .NET Framework
Plus l’étendue d’une variable est réduite, plus le code malveillant risque de l’utiliser de manière incorrecte.