November 3, 2026 Guides

How to enable mouse wheel scrolling for ListBox, ComboBox, Frame in VBA

VBA does not support mouse wheel scrolling for ListBox, ComboBox, Frame and UserForm. SonVuDev's MouseWheel for VBA fixes it with 1 .bas file and 2 lines of code, running on Excel, Access, Word, and PowerPoint.

You are writing VBA macros in Excel, Access, Word, or PowerPoint, and notice that ListBox / ComboBox / Frame scroll with the keyboard but not with the mouse wheel? That is not a software bug — it is a long-standing VBA limitation.

MouseWheel for VBA by SonVuDev solves it with 1 .bas file and 2 lines of code. No MSForms dependency, runs on any VBA host, and supports both 64-bit and 32-bit Office.

Why does VBA not scroll with the mouse wheel?

VBA is not .NET or WinForms — it is a legacy language deeply embedded in Office. Controls like ListBox, ComboBox, and Frame do not have a built-in message loop to catch WM_MOUSEWHEEL. When you scroll, Windows sends that message to the parent window (UserForm), but VBA does not forward it to the child control.

The result: you have to drag the scrollbar or use arrow keys — very inconvenient for long lists.

How to enable mouse wheel scrolling in VBA

  1. Download MouseWheel.bas from SonVuDev.
  2. Import the .bas file into your VBA project (Alt+F11 → File → Import File).
  3. In the UserForm_Initialize event, add 2 lines:
    Call MouseWheelEnable(Me)
    Call MouseWheelConfigure(Me, 3, True)
  4. Run the form — the mouse wheel now works.

Key features

When should you use it?

Conclusion

MouseWheel for VBA is a tiny, dependency-free, easy-to-integrate fix. If you write VBA and want your forms to scroll with the mouse, this is the right tool.