06/04/2021, 14:51

Cách dùng ComboBox trong VBA - ự học Excel VBA

Trong bài này mình sẽ hướng dẫn cách sử dụng ComboBox trong VBA, đây là đối tượng nằm trong nhóm ActiveX Controls của Excel VBA. ComboBox sẽ hiển thị ở dạng danh sách, nhưng nó không show ra toàn bộ như ListBox. Dữ liệu sẽ được ẩn và chỉ khi nào bạn click vào ComboBox thì nó mới xổ dữ liệu ra, ...

Trong bài này mình sẽ hướng dẫn cách sử dụng ComboBox trong VBA, đây là đối tượng nằm trong nhóm ActiveX Controls của Excel VBA.

ComboBox sẽ hiển thị ở dạng danh sách, nhưng nó không show ra toàn bộ như ListBox. Dữ liệu sẽ được ẩn và chỉ khi nào bạn click vào ComboBox thì nó mới xổ dữ liệu ra, bạn chọn thì nó sẽ đóng lại.

drag combo box png

ComboBox trông rất gọn gàng và thân thiện.

* Lưu ý: Kể từ bài này mình sẽ không hướng dẫn chi tiết cách thêm ActiveX Control nữa nhé, nếu bạn chưa biết thì hãy xem bài viết đó.

1. ComboBox là gì?

ComboBox là một trong những đối tượng thuộc ActiveX Control trong VBA, ta thường sử dụng nó để hiển thị dữ liệu ở dạng danh sách nhưng bị ẩn, chỉ khi nào click trực tiếp vào nó thì dữ liệu mới được xổ ra.

Tương tự như ListBox, ComboBox hỗ trợ phương thức AddItem dùng để thêm tùy chọn vào ComboBox. Sẽ rất dễ dàng nếu bạn thực hiện điều này trong sự kiện Workbook Open Event.

Để tạo ComboBox thì bạn click vào Insert nằm trong tab Developer.

combobox JPG

2. Các thuộc tính của ComboBox trong VBA

ComboBox có rất nhiều thuộc tính, và để xem thuộc tính của nó thì bạn click chuột phải, sau đó chọn Properties.

properties combobox JPG

Sẽ có một hộp thoại hiển thị ra, tại đây chứa tất cả những thông tin về thuộc tính của ComboBox.

danh sach thuoc tinh combobox JPG

3. Các sự kiện của ComboBox trong VBA

ComboBox trong VBA có rất nhiều sự kiện, và để xem danh sách các sự kiện đó thì bạn hãy mở Visual Basic Editor lên, sau đó mở Sheet Module của ComboBox.

Click vào menu xổ xuống phía bên trái thì bạn sẽ thấy danh sách các sự kiện của nó.

su kien textbox JPG

Trong danh sách này thì ta thường quan tâm đến một số sự kiện sau:

  • Change là sự kiện xảy khi bạn thay đổi liệu ở ComboBox
  • GotFucus là sự kiện xảy ra khi bạn click con trỏ chuột vào trong ô ComboBox
  • MouseDown, MouseMove và MouseUp là sự kiện liên quan đến chuột
  • KeyDown, KeyPress và KeyUp là sự kiện liên quan đến các phím

Để tìm hiểu cách sử dụng của các sự kiện của ComboBox thì tốt nhất bạn hãy search trên trang chủ của Microsoft nhé.

4. Ví dụ về ComboBox trong VBA

Mình sẽ làm một vài ví dụ liên quan đến ComboBox, đó là những thao tác thường sử dụng nhất khi làm việc với nó.

Thêm dữ liệu vào ComboBox

Như đã đề cập ở trên, để thêm dữ liệu vào ComboBox thì ta sử dụng phương thức AddItem.

With Sheet1.ComboBox1
    .AddItem "Cường"
    .AddItem "Kính"
    .AddItem "Chính"
End With

Xóa dữ liệu ComboBox

Có hai cách để xóa như sau:

ComboBox1.Clear
ComboBox1.Value = ""

Thuộc tính LinkedCell

Đây là thuộc tính giúp lấy kết quả vào một ô trong Excel.

Giả sử mình muốn khi chọn dữ liệu trong ComboBox thì show kết quả vào ô D2 thì làm như sau.

Hãy click chuột phải rồi chọn Properties, sau đó nhập D2 vào như hình dưới đây.

linkedcell combobox png

Trên là cách sử dụng cơ bản ComboBox trong VBA, vẫn còn nhiều vấn đề chuyên sâu hơn nhưng mình sẽ nói ở bài khác. Chúc bạn thành công!

Trịnh Tiến Mạnh

27 chủ đề

6824 bài viết

Cùng chủ đề
0