Share via


Comment : contrôler la portée d'une variable

Mise à jour : novembre 2007

Normalement, une variable figure dans la portée ou est visible par référence dans l'ensemble de la région dans laquelle vous la déclarez. Dans certains cas, le niveau d'accès de la variable peut influencer sa portée.

Pour plus d'informations, consultez Portée dans Visual Basic.

Portée au niveau du bloc ou de la procédure

Pour rendre une variable visible uniquement dans un bloc

  • Placez le Dim, instruction (Visual Basic) de la variable entre les instructions de déclaration de début et de fin de ce bloc, par exemple entre les instructions For et Next d'une boucle For.

    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 de la variable à l'intérieur de la procédure, mais à l'extérieur de tout bloc (tel qu'un bloc With...End With).

    Vous pouvez faire référence à la variable uniquement à partir de la procédure, y compris à l'intérieur de tout bloc contenu dans la procédure.

Portée au niveau du module ou de l'espace de noms

Pour des raisons pratiques, le terme niveau de module est appliqué indifféremment aux modules, aux classes et aux structures. Le niveau d'accès d'une variable du niveau du module détermine sa portée. L'espace de noms qui contient le module, la classe ou la structure influence également la portée.

Pour rendre une variable visible dans l'ensemble d'un module, d'une classe ou d'une structure

  1. Placez l'instruction Dim de la variable à l'intérieur du module, de la classe ou de la structure, mais à l'extérieur de toute procédure.

  2. Incluez le mot clé Private (Visual Basic) dans l'instruction Dim.

  3. Vous pouvez faire référence à la variable de n'importe quel endroit du module, de la classe ou de la structure, mais pas à l'extérieur de ceux-ci.

Pour rendre une variable visible dans l'ensemble d'un espace de noms

  1. Placez l'instruction Dim de la variable à l'intérieur du module, de la classe ou de la structure, mais à l'extérieur de toute procédure.

  2. Insérez le mot clé Friend (Visual Basic) ou Public (Visual Basic) dans l'instruction Dim.

  3. Vous pouvez faire référence à la variable de n'importe quel endroit de l'espace de noms qui contient 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 variable StringstrMsg. Lors de l'appel de la procédure usePrivateVariable, celle-ci affiche le contenu de la variable chaîne strMsg dans une boîte de dialogue.

Avec la modification suivante apportée à l'exemple ci-dessus, la variable chaîne strMsg peut faire l'objet d'une référence par le code n'importe où dans l'espace de noms de sa déclaration :

    Public strMsg As String

Programmation fiable

Plus la portée d'une variable est limitée, moins vous risquez d'y faire référence par erreur à la place d'une autre variable du même nom. Vous pouvez également réduire les problèmes de correspondance de référence.

Sécurité

Plus la portée d'une variable est limitée, moins vous risquez son utilisation incorrecte par du code malveillant .

Voir aussi

Concepts

Portée dans Visual Basic

Durée de vie dans Visual Basic

Niveaux d'accès dans Visual Basic

Variables en Visual Basic

Déclaration de variable en Visual Basic

Référence

Dim, instruction (Visual Basic)