06/04/2021, 14:51

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.

list box png

* 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.

create text box png

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.

thuoc tinh listbox 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 ListBox.

listbox JPG

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ó.

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 ở 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

them du lieu vao listbox JPG

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:

listbox sau khi them data JPG

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.

linkedcell JPG

Sau đó chọn dữ liệu trong ListBox thì bạn sẽ thấy nó xuất hiện trong ô D1.

ket qua linkedcell JPG

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.

Trịnh Tiến Mạnh

27 chủ đề

6824 bài viết

Cùng chủ đề
0