¿Cómo puedo ocultar y desactivar los botones de la ventana en el programa Microsoft Excel?

Como puedo ocultar y/o desactivar los botones de la ventana de Excel(minimizar, ¿restaurar y cerrar)?

1 Respuesta

Respuesta
1
En principio, digamos que tales controles se manejan desde el "Registro" de Windows y meter mano es ello, sin conocer, suele llevar a serios problemas en todo el sistema.
Hay, sin embargo, una forma de eliminar los botones de maximizar y minimizar para la ventana de un documento.
Para ello deberías incluir el siguiente macro asociado al evento de activar o desactivar la ventana en cuestión.
A tal fin, haz lo siguiente:
Primero deberás activar el editor de Visual Basic (Alt+F11)
A la derecha de la pantalla, busca la carpeta ThisWorkbook (o "EsteLibro" en otras versiones).
De los dos menués descolgables superiores elige "Workbook" en el de la izquierda y "open" en el de la derecha (con esto le indicas a MS Excel que al abrir el archivo ejecute las instrucciones que encuentre aquí)
Al hacerlo, aparecerá escrito lo siguiente:
Private Sub Workbook_Open()
End Sub
Luego deberás reemplazar ambas con las siguientes lineas de código:
Private Sub Workbook_WindowActivate(ByVal Wn As Excel.Window)
ActiveWindow.WindowState = xlNormal
ActiveWindow.EnableResize = False
Application.WindowState = xlNormal
End Sub
Private Sub Workbook_WindowDeactivate(ByVal Wn As Excel.Window)
ActiveWindow.EnableResize = True
ActiveWindow.WindowState = xlMaximized
Application.WindowState = xlMaximized
End Sub
EL efecto será que para esa ventana desaparecerán los íconos de minimizar y maximizar, pero cunado cambies de ventana estarán disponibles.
Respecto al botón de cerrar, buscaría interceptarlo con un evento "before_close" para que no permita cerrarlo por ese medio.
Otra vez en la hoja "Thisworkbook" ingresa este código:
Private Sub Workbook_BeforeClose(Cancel As Boolean)
MsgBox "Debes usar el botón de la hoja para cerrar", vbInformation, "Opción inahabilitada"
Cancel = True
End Sub
Private Sub Workbook_Open()
Application.EnableEvents = True
End Sub
Al intentar cerrar el archivo aparece un mensaje para que use otro medio para cerrarlo
Claro está deberías tener una rutina propia para poder hacerlo, pues esta alternativa bloquea cualquier otra forma de cerrar el archivo
Por ejemplo un botón con este código asociado
Sub SiCierra()
Application.EnableEvents = False
ActiveWorkbook.Close False ' si quieres que pregunte para grabar el archivo, saca False de esta linea
End sub
Finalmente recuerda lo que te mencioné alguna vez respecto a que si quién habré el archivo, inhabilita macros (ante la pregunta de MS Excel)
Estos recaudos quedarán anulados.
Tal vez tendrás que tener todas las hojas ocultas y a libro protegido con clave, excepto una de caratula con un mensaje que avise al usuario que debe habilitar las macros para poder acceder al libro.
En todo caso te conviene mantener tu proyecto de VBA oculto y protegido con contraseña para que no pueda verse qué hace.
Para esto, accede al Editor de Visual Basic, en su Navegador de Proyectos, busca el de tu archivo -cierra todos los elementos que tenga asociado- haz click derecho sobre él. Elige "Propiedades del VBA Project". Selecciona la solapa de Protección, marca la casilla de "Bloquear proyecto para visualización" y también ingresale una contraseña.
Espero haberte ayudado.
Un gran abrazo!
Fernando

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas