3 de noviembre de 2026 Instruir

Cómo activar la rueda del mouse para ListBox, ComboBox, Frame en VBA

VBA no admite la rueda del mouse para ListBox, ComboBox, Frame y UserForm. MouseWheel para VBA de SonVuDev se resuelve con solo 1 archivo .bas y 2 líneas de código, se ejecuta en Excel, Access, Word y PowerPoint.

Esta publicación solo está disponible en vietnamita e inglés por ahora. Se muestra la versión en inglés.

¿Estás escribiendo una macro VBA en Excel, Access, Word o PowerPoint y ves ListBox / ComboBox / Frame desplazarse con las teclas pero no con la rueda del mouse? No es un error de software, es una limitación de VBA del pasado.

MouseWheel de SonVuDev para VBA resuelve este problema con solo 1 archivo .bas y 2 líneas de código. No necesita la biblioteca MSForms, se ejecuta en cualquier host VBA, admite Office de 64 y 32 bits.

¿Por qué VBA no puede desplazarse con la rueda del mouse?

VBA no es .NET ni WinForms: es un lenguaje de programación antiguo, profundamente integrado en Office. Los controles como ListBox, ComboBox y Frame no tienen un bucle de mensajes disponible para capturar el evento WM_MOUSEWHEEL. Cuando se desplaza, Windows envía ese mensaje a la ventana principal (UserForm), pero VBA no lo reenvía al control secundario.

Consecuencia: debe arrastrar la barra de desplazamiento con la mano o usar las teclas de flecha, lo cual es muy inconveniente cuando la lista es larga.

Cómo activar la rueda del mouse en VBA

  1. Descargar MouseWheel.bas de SonVuDev.
  2. Importar archivo .ba s en el proyecto VBA (Alt+F11 → Archivo → Importar archivo).
  3. En el evento UserForm_Initialize, agregue 2 líneas:
    Call MouseWheelEnable(Me)
    Call MouseWheelConfigure(Me, 3, Verdadero)
  4. Ejecutar formulario: la rueda del mouse está funcionando.

Características

¿Cuándo debería usarlo?

Conclusion

MouseWheel para VBA es una solución compacta, libre de dependencias y fácil de integrar. Si está escribiendo VBA y desea que su formulario se pueda desplazar con el mouse, esta es la herramienta adecuada.