variable macro inicializar globales dim vba vb6 scope access-modifiers

vba - macro - ¿Cuál es la diferencia entre Dim, Global, Public y Private Modular Field Access Modifiers?



var vba (1)

Dim y Private funcionan igual, aunque la convención común es usar Private en el nivel de módulo y Dim en Sub / Function level. Public y Global son casi idénticos en su función; sin embargo, Global solo se puede usar en módulos estándar, mientras que Public se puede usar en todos los contextos (módulos, clases, controles, formularios, etc.) Global proviene de versiones anteriores de VB y probablemente se mantuvo para compatibilidad con versiones anteriores, pero ha sido completamente reemplazado por Public .

En VB6 / VBA, puede declarar variables de nivel de módulo fuera de un método Sub o Function específico. He utilizado los módulos Private y Public antes que dentro y los entiendo así:

  • Public : visible para todo el código dentro del módulo y todo el código fuera del módulo, esencialmente haciéndolo global.
  • Private : solo visible para codificar dentro del módulo.

Me di cuenta de que puede usar Dim y Global como modificadores para variables modulares. ¿Son Dim y Global diferentes de Private y Public , respectivamente, cuando se usan como modificadores de acceso en campos modulares? Si es así, ¿cómo son diferentes?