Objeto flotante de Excel VBA

Objeto flotante de Excel VBA

He estado en todos los foros y no tuve mucha suerte con mi problema. Quiero crear una barra de botones personalizada usando formas y luego acoplarla en la parte inferior de Excel. Esto se vuelve complicado porque cada usuario tiene un monitor y una resolución de pantalla diferentes. Después de investigar un poco, parece que puedo usar application.height y object.top para ubicar la barra de botones. El problema es que a medida que me desplazo hacia arriba y hacia abajo en la página, necesito que la macro se ejecute al desplazarme. ¿Es esto siquiera posible?

Respuesta1

No se me ocurre ninguna forma de hacerlo con formas, pero puedes agregar un formulario de usuario a tu proyecto y luego agregar los botones/etiquetas/imágenes que desees al formulario. De forma predeterminada, un formulario se ejecuta por separado de las hojas de Excel, por lo que no se ve afectado por el desplazamiento, pero permanece en la parte superior de la ventana de Excel.

Para agregar un formulario, abra la ventana de código, haga clic derecho en su VBAProject y seleccioneInsertar...=>Formulario de usuario. Puede usar Application.Width, Application.Heighty para determinar en qué parte de la pantalla el usuario tiene su ventana de Excel y luego usar Application.Topetc. para reposicionar el formulario según sea necesario para mantenerlo donde lo desee (reemplace con el nombre que le dé al objeto del formulario). Application.LeftUserForm1.WidthUserForm1

Puede tener el formulario abierto en una ubicación específica de la pantalla, pero los usuarios pueden moverlo (no he intentado bloquear la posición de un formulario antes). Tendrá que determinar qué eventos monitorear para reposicionar el formulario, si así lo desea. Solo recuerde que monitorear demasiados o con demasiada frecuencia afectará el rendimiento general de sus usuarios.

información relacionada