VBA Excel: ¿hay alguna forma de garantizar que el usuario no pueda llamar/ejecutar una macro en la ventana inmediata?

VBA Excel: ¿hay alguna forma de garantizar que el usuario no pueda llamar/ejecutar una macro en la ventana inmediata?

Así que escribí una aplicación VBA y bloqueé VBAProject (no visible). Pero, por supuesto, el usuario aún puede tener acceso a la Ventana Inmediata (si abre otro archivo de Excel, por ejemplo, y hace clic en mi VBAProject, incluso si está bloqueado). A pesar de que mi VBAProject está bloqueado y no se puede ver, el usuario, con otro Excel abierto, puede tener acceso a mi Ventana Inmediata e intentar ejecutar mis macros o ingresar algunos códigos para ejecutar. Por supuesto, no saben cómo nombré mis macros, pero probablemente puedan ejecutar un código para obtener la lista de nombres (nombres de procedimientos). Entonces, ¿es posible evitar que un usuario ejecute cualquier código o llame a cualquier macro en mi ventana inmediata de VBAProject?

Respuesta1

La respuesta corta: utilice la Privatepalabra clave.

Una respuesta más larga: la única forma de proteger su código fuente es no publicarlo nunca.

La respuesta larga: es posible crear un proyecto VBA que bloquee activamente el acceso al editor VBA; pero esto no es ético y no protege su código fuente más que una contraseña de proyecto.

Considere la vieja Workbook.Closebroma que cierra un libro inmediatamente después de abrirlo. Todo lo que el usuario debe hacer es desactivar las macros y volver a abrir el libro. Lo mismo se aplica a todo lo que escriba en VBA. Si confía en VBA para realizar su acción de seguridad, su seguridad finaliza cuando las macros están deshabilitadas.

Compare eso con la seguridad que obtiene con una contraseña de proyecto. Claro, descifrar la contraseña es trivial para la mayoría de los desarrolladores, pero requiere más esfuerzo y detendrá a la mayoría de los usuarios ocasionales. Es importante destacar que le mantiene a usted y a su software en el lado respetado de la línea.

Hay que tener una conversación sobre el uso de herramientas externas en lugar de VBA o junto con él, pero esto es sustancialmente más complicado que la pregunta que usted hizo. Esto también cumpliría con cualquier definición del término malware si se comportan como usted propone.

información relacionada