Cách dùng ListBox trong VBA (ActiveX Control) - ự học Excel VBA
Trong bài này mình sẽ hướng dẫn cách sử dụng ListBox trong VBA, đây là một đối tượng nằm trong nhóm ActiveX Controls của Excel VBA. ListBox sẽ hiển thị dạng một danh sách, và người dùng có thể chọn dữ liệu trong danh sách đó. Ví dụ bạn thiết kế cho form nhập liệu có thông tin tùy chọn tỉnh thành, ...
Trong bài này mình sẽ hướng dẫn cách sử dụng ListBox trong VBA, đây là một đối tượng nằm trong nhóm ActiveX Controls của Excel VBA.
ListBox sẽ hiển thị dạng một danh sách, và người dùng có thể chọn dữ liệu trong danh sách đó. Ví dụ bạn thiết kế cho form nhập liệu có thông tin tùy chọn tỉnh thành, thay vì để người dùng tự nhập thì bạn có thể sử dụng.
* 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. ListBox là gì?
ListBox là một trong những đối tượng thuộc ActiveX Control trong VBA. Ta thường sử dụng ListBox để hiển thị danh sách dữ liệu tùy chọn trong UserForm, hoặc hiển thị trên giao diện Excel.
Khi bạn mới tạo đối tượng thì không có dữ liệu, vì vậy ta phải thêm dữ liệu thông qua phương thức AddItem được tích hợp sẵn trong ListBox. Và tốt nhất là thêm tại sự kiện Workbook Open Event.
Để tạo ListBox thì bạn click vào Insert nằm trong tab Developer.
2. Các thuộc tính của ListBox VBA
ListBox 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.
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 ListBox.
3. Các sự kiện của ListBox VBA
ListBox 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 ListBox.
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ó.
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 ở ListBox
- GotFucus là sự kiện xảy ra khi bạn click con trỏ chuột vào trong ô ListBox
- 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 ListBox thì tốt nhất bạn hãy search trên trang chủ của Microsoft nhé.
4. Ví dụ về ListBox trong VBA
Bây giờ ta sẽ làm một vài ví dụ quan trọng khi sử dụng ListBox.
Thêm dữ liệu vào ListBox
Để thêm dữ liệu vào ListBox tại sự kiện Workbook Open Event, bạn hãy nhập đoạn code sau vào:
Private Sub Workbook_Open() With Sheet1.ListBox1 .AddItem "DakLak" .AddItem "HaNoi" .AddItem "HoChiMinh" End With End Sub
Bạn hãy thử tắt file excel đang mở, sau đó mở lại thì sẽ thấy xuất hiện dữ liệu như sau:
Xóa dữ liệu khỏi ListBox
Để xóa dữ liệu ra khỏi ListBox thì ta sử dụng phương thức Clear.
ListBox1.Clear
Lấy dữ liệu đã chọn vào một ô Excel
Nếu bạn muốn lấy dữ liệu mà người dùng đã chọn và hiển thị vào một ô nào đó thì hãy mở hộp thoại properties lên, sau đó nhập ô đó vào vị trí LInkedCell.
Sau đó chọn dữ liệu trong ListBox thì bạn sẽ thấy nó xuất hiện trong ô D1.
Trên là một số cách sử dụng đối tượng ListBox trong VBA cơ bản, hy vọng những kiến thức này sẽ giúp bạn hiểu hơn về cách sử dụng ListBox, cũng như sử dụng các sự kiện và thuộc tính của ListBox.