Inhabilitar al usuario para que no vea la propiedad de control ActiveX Excel (VBA)

Actualmente estoy creando una aplicación basada en VBA en Microsoft Excel.

Usé el control ActiveX simple para obtener la ID/contraseña de usuario. El problema con esto es que el usuario podría ver el valor de la contraseña al ver las "propiedades" de la etiqueta ActiveX.

¿Hay alguna forma de evitar que el usuario active el modo "Diseño" y vea los valores de los cuadros de texto directamente? ¿O hay alguna forma mejor de almacenar las credenciales en el sistema? La razón por la que uso los cuadros de texto es porque son más fáciles de usar para el usuario (puede guardar el valor y, por lo tanto, puede usar el programa en el futuro sin la necesidad de volver a escribir el ID de usuario/contraseña nuevamente) y es fácil de mantener ( sin necesidad de formularios/ventanas emergentes)

Gracias por tu ayuda.

Así es como se ve el cuadro de identificación/contraseña en la hoja (usando el control ActiveX)

El problema es que el usuario puede ver el valor del cuadro de texto de la contraseña si abre el modo de diseño -> propiedades

preguntado el 04 de julio de 12 a las 04:07

Estoy algo confundido, si el usuario puede guardar la contraseña, cualquiera que tenga el archivo puede acceder al sistema sin contraseña. independientemente de si pueden o no activar el modo de diseño -

Gracias por su respuesta. Sí, eso está bien porque incluso con el acceso (identificación de inicio de sesión/contraseña), el usuario solo puede "ver" ciertos datos que se extraerán (ya que el código vba está protegido por contraseña). El problema con las personas que obtienen el ID/PW es que pueden usarlo para conectarse a SQL Server con otro programa (por ejemplo, SQL Server Management Studio) y hacer otras cosas (por ejemplo, Truncar/Drop table), así como ver otras tablas que están no accesible con la aplicación de Excel actual. Lo siento, podría explicarme mejor con imágenes, pero no puedo hacerlo porque aún no tengo suficiente reputación.. -

1 Respuestas

Crearía un formulario de usuario para manejar el sistema de nombre de usuario/contraseña. El formulario podría guardar el nombre de usuario y la contraseña en una hoja muy oculta configurando la propiedad 'Visible' de la hoja en 'xlSheetVeryHidden' en el IDE de VBA. La hoja no se puede mostrar a menos que ingrese al IDE de VBA y cambie la propiedad visible.

Propiedad de visibilidad de la hoja

Cuando se abra el formulario, cargue los datos de dos rangos en esa hoja. Puede configurar los nombres de los rangos para que se oculten del Administrador de nombres en caso de que le preocupe que los usuarios calculen los nombres de los rangos y coloquen el valor en una celda.

Las únicas personas que sabrían cuáles son los nombres de los rangos de celdas y dónde acceder a ellos serían aquellos con acceso al código VBA. Así que protéjalo con una contraseña y será lo más seguro posible en Excel, al menos en mi opinión.

La seguridad es una cosa relativa en cualquier caso. La seguridad que debe tener algo depende de la importancia de los datos. Si es solo para evitar que las personas jueguen con cosas que no deberían, entonces la seguridad simple está bien. Si se trata de datos altamente confidenciales, no debería permitir que los usuarios guarden una contraseña de todos modos. Tal vez un nombre de usuario, pero no una contraseña.

Respondido 04 Jul 12, 05:07

Gracias por su respuesta. Su solución parece factible. Consideraré hacerlo;) Pero de todos modos, tengo curiosidad por saber si podemos bloquear la función de propiedades de vista en Excel ... - Antoni

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.