¿Cómo usar la instrucción Option Private en VBA?

La instrucción Option Private en VBA (Visual Basic for Applications) se utiliza para restringir la visibilidad de los elementos programáticos (procedimientos, funciones, variables, etc.) de un módulo a otros proyectos. Por defecto, todos los elementos públicos de un módulo están disponibles para ser referenciados desde otros proyectos de VBA, pero al utilizar Option Private, se ocultan estos elementos para prevenir la exposición no deseada de tu código.

Hay que resaltar que Option Private sólo es relevante para el código escrito en módulos que están en una biblioteca de clases o en un proyecto de add-in (como un complemento de Excel, por ejemplo), y no tiene ningún efecto en módulos estándar dentro de un libro de trabajo de Excel regular, ya que estos módulos no pueden ser referenciados desde fuera de su propio libro de trabajo de todos modos.

Para usar Option Private, sigue estos pasos:

  1. En el editor de VBA, seleccione un módulo donde desee aplicar la instrucción Option Private. Puedes hacer esto haciendo clic derecho en el área de ‘Proyecto-VBAProject’ y seleccionando ‘Insertar’ -> ‘Módulo’ para crear un nuevo módulo si es necesario.
  2. En la parte superior del módulo, antes de cualquier declaración de procedimiento (Sub, Function) o variable, escribe:
VBA

Option Private Module

Esta declaración debe ser la primera en el módulo, antes de cualquier otro código. Con Option Private Module activo, cualquier código dentro de ese módulo sólo será accesible dentro del proyecto VBA actual.

Aquí hay un ejemplo de cómo se vería:

VBA

Option Private Module

Public Sub MiProcedimientoPublico()
    ' Este procedimiento no será accesible fuera de este proyecto
End Sub

Private Sub MiProcedimientoPrivado()
    ' Este procedimiento ya es privado y también inaccesible fuera de este módulo
End Sub

Es importante notar que Option Private Module no afecta a la visibilidad de los objetos, métodos o propiedades que ya son privados (declarados con Private) dentro del módulo.

Si deseas compartir elementos programáticos entre proyectos, debes no utilizar Option Private Module y en su lugar crear referencias explícitas entre los proyectos de VBA utilizando el diálogo de «Referencias» en el editor de VBA (accesible desde el menú ‘Herramientas’ -> ‘Referencias…’), seleccionando el proyecto desde el cual deseas hacer referencia.

Recuerda que una alternativa para restringir el acceso a procedimientos y variables es utilizar los modificadores Public o Private con cada declaración de procedimiento o variable para indicar su nivel de acceso.

Conoce nuestra tienda

Ver más productos

Mejora tu nivel y logra tus objetivo

Excel

Excel cursos

Access

cursos de Access

Power BI

cursos power BI

Ayúdanos a hacer crecer el proyecto

¡Únete a nuestro Grupo de Facebook!

Deja un comentario