Variable Publique
Déclaration d'une variable Publique
La variable Publique (ex Globale) est une variable déclarée dans la section des déclarations d'un module avec 'Public'. Elle peut-être utilisée dans toutes les feuilles et tous les modules. Il s'agit d'une variable globale.
Note : Les versions précédentes de Visual Basic (1 à 3) utilisaient le mot 'Global' pour la déclaration d'une variable globale. Il est remplacé par 'Public' depuis la version 4.
Dans un module :
' Dans la section des déclarations d'un module nommé "MonModule"
Public MaString as String
' Dans cet exemple, la variable 'MaString' pourra directement être testée/affectée depuis n'importe quelle fonction/procédure du projet :
Sub proc_mavariable()
MaString = "oui"
' Il est aussi possible, pour une meilleure lisiblilité du code, de préciser lors de son utilisation, le nom de son module d'origine :
MonModule.MaString = "oui aussi"
End Sub
Public MaString as String
' Dans cet exemple, la variable 'MaString' pourra directement être testée/affectée depuis n'importe quelle fonction/procédure du projet :
Sub proc_mavariable()
MaString = "oui"
' Il est aussi possible, pour une meilleure lisiblilité du code, de préciser lors de son utilisation, le nom de son module d'origine :
MonModule.MaString = "oui aussi"
End Sub
On peut aussi déclarer une variable publique avec 'Public' dans la section des déclarations d'une feuille de formulaire, mais il y a une grande différence d'utilisation à déclarer une variable 'Public' dans un module ou dans une feuille de formulaire!
Dans une feuille de formulaire:
' Dans la section des déclarations d'une feuille nommée "MaForm"
Public MaString
' Pour utiliser cette variable à l'intérieur de "MaForm", il suffira de la désigner directement :
MaString = "un peu"
' Par contre, pour l'utiliser depuis une autre feuille ou un autre module, il faudra désigner explicitement la feuille d'origine :
MaForm.MaString = "beaucoup"
Public MaString
' Pour utiliser cette variable à l'intérieur de "MaForm", il suffira de la désigner directement :
MaString = "un peu"
' Par contre, pour l'utiliser depuis une autre feuille ou un autre module, il faudra désigner explicitement la feuille d'origine :
MaForm.MaString = "beaucoup"
Le mot 'Dim' peut toujours être remplacé par 'Private' ou 'Public' (sauf dans certain cas particuliers). Il est alors préférable d'utiliser ces 2 derniers mots, qui présentent l'avantage d'expliciter la portée de la variable et de rendre la lecture du code plus aisée.
Source: vbfrance.com