Hộp danh sách tùy chọn (List box) là một danh sách gồm các mục nhỏ để người dùng có thể lựa chọn một mục trong số đó. Để tạo hộp danh sách tùy chọn trong Excel VBA, ta thực hiện theo các bước sau đây.
1. Trên tab Developer tab, nhấn chuột chọn Inserts.
2. Nhìn trong nhóm ActiveX Controls, nhấn chuột chọn List Box.

3. Thả một hộp danh sách tùy chọn vào trang tính của mình.

Chú ý:
Chúng ta có thể thay đổi tên của hộp bằng cách nhấn chuột phải vào bảng điều khiển (trước đó nhớ phải tích chọn Design Mode) và sau đó nhấn chuột chọn Properties. Tới đây ta sẽ đổi tên hộp danh sách tùy chọn thành ListBox1.
Để nguyên trang tính ở trạng thái mở, mã VBA Excel sẽ tự động thêm đoạn mã vào trang tính đang được mở của bạn.
4. Mở hộp thoại Visual Basic Editor. (Nếu bạn chưa biết về Macro trong Excel hãy xem bài Hướng dẫn tạo một Macro trên Excel).
5. Nhấn đúp chuột vào tệp trong Project Explorer.
6. Chọn tệp từ danh sách tùy chọn được thả ra. Và nhấn chọn Open trong danh sách tùy chọn.

7. Để thêm các mục nhỏ vào hộp danh sách, ta chèn đoạn mã dưới đây vào Workbook Open Event.
With Sheet1.ListBox1
.AddItem "Paris"
.AddItem "New York"
.AddItem "London"
End With
Chú ý: Ta sử dụng Sheet2 nếu hộp danh sách nằm trong trang tính thứ 2, chọn Sheet3 nếu hộp danh sách nằm trong trang tính thứ 3, v...v...
Nếu dùng dòng mã này bên ngoài Workbook Open Event. Ta sẽ cần thêm đoạn mã dưới đây vào đằng trước dòng mã trước. Dòng mã này sẽ xóa hộp danh sách. Bằng cách này các mục nhỏ trong danh sách sẽ không bị thêm nhiều lần và ta có thể sử dụng đoạn mã nhiều lần.
ListBox1.Clear
8. Để liên kết hộp danh sách này với một ô, ta nhấn chuột phải vào hộp danh sách và nhấn chọn Properties. Điền D3 vào mục Linked Cell.

Chú ý: Ta cũng có thể dùng ListFillRange, cho phép ta điền vào một dải ô.
9. Lưu lại và đóng. Mở lại tệp Excel.
Ta thu được kết quả như sau:

Trong nhiều trường hợp ta cần đặt hộp danh sách trực tiếp vào trang tính của mình, nó đặc biệt cần thiết khi dùng cho một Biểu mẫu tùy chọn.
Xem thêm:
Có thể bạn sẽ cần: