3 tháng 11, 2026 Guides

Cách bật con lăn chuột cho ListBox, ComboBox, Frame trong VBA

VBA không hỗ trợ con lăn chuột cho ListBox, ComboBox, Frame và UserForm. MouseWheel for VBA của SonVuDev giải quyết chỉ với 1 file .bas và 2 dòng code, chạy trên Excel, Access, Word, PowerPoint.

Bạn đang viết macro VBA trong Excel, Access, Word hoặc PowerPoint và thấy ListBox / ComboBox / Frame cuộn bằng phím nhưng không cuộn được bằng con lăn chuột? Đó không phải lỗi phần mềm — đó là giới hạn của VBA từ xưa đến nay.

MouseWheel for VBA của SonVuDev giải quyết vấn đề này chỉ với 1 file .bas và 2 dòng code. Không cần thư viện MSForms, chạy trên mọi host VBA, hỗ trợ cả Office 64-bit và 32-bit.

Tại sao VBA không cuộn được bằng con lăn chuột?

VBA không phải là .NET hay WinForms — nó là ngôn ngữ lập trình cũ, được tích hợp sâu vào Office. Các control như ListBox, ComboBox, Frame không có sẵn message loop để bắt sự kiện WM_MOUSEWHEEL. Khi bạn cuộn chuột, Windows gửi message đó đến cửa sổ cha (UserForm), nhưng VBA không chuyển tiếp xuống control con.

Hậu quả: bạn phải kéo thanh cuộn bằng tay, hoặc dùng phím mũi tên — rất bất tiện khi danh sách dài.

Cách bật con lăn chuột trong VBA

  1. Tải về MouseWheel.bas từ SonVuDev.
  2. Import file .bas vào project VBA (Alt+F11 → File → Import File).
  3. Trong event UserForm_Initialize, thêm 2 dòng:
    Call MouseWheelEnable(Me)
    Call MouseWheelConfigure(Me, 3, True)
  4. Chạy form — con lăn chuột đã hoạt động.

Tính năng nổi bật

Khi nào nên dùng?

Kết luận

MouseWheel for VBA là giải pháp nhỏ gọn, không phụ thuộc, dễ tích hợp. Nếu bạn đang viết VBA và muốn form của mình cuộn được bằng chuột, đây là công cụ phù hợp.