Dans VB6/VBA, vous pouvez déclarer des variables de niveau module en dehors d'une méthode spécifique Sub
ou Function
. J'ai utilisé Private
et Public
auparavant dans les modules internes et je les comprends comme ceci:
Public
- visible par tout le code à l'intérieur du module et tout le code à l'extérieur du module, le rendant essentiellement global.Private
- visible uniquement pour le code à l'intérieur du module.J'ai remarqué que vous pouvez utiliser Dim
et Global
comme modificateurs de variables modulaires. Est-ce que Dim
et Global
sont différents de Private
et Public
, respectivement, lorsqu'ils sont utilisés comme modificateurs d'accès sur des champs modulaires? Si oui, en quoi sont-ils différents?
Dim
et Private
fonctionnent de la même manière, bien que la convention habituelle soit d'utiliser Private
au niveau du module et Dim
au niveau de la sous-fonction/fonction. Public
et Global
sont presque identiques dans leur fonction. Cependant, Global
ne peut être utilisé que dans des modules standard, alors que Public
peut être utilisé dans tous les contextes (modules , classes, contrôles, formulaires, etc.) Global
provient d'anciennes versions de VB et a probablement été conservé pour des raisons de compatibilité ascendante, mais a été complètement remplacé par Public
. .