Вікно списків VBA

У VBA можна створити файл Список де користувач може вибрати один із перерахованих варіантів. Listbox часто використовується у формах користувача, але також може використовуватися у робочому аркуші. У цьому посібнику ви дізнаєтесь, як створювати, заповнювати та видаляти Listbox. Ви також побачите, як отримати вибір користувача у VBA та використовувати його у коді.

Якщо ви хочете дізнатися, як створити ComboBox, натисніть тут: VBA ComboBox

Якщо ви хочете дізнатися, як створити прапорець, натисніть тут: Прапорець VBA

Створіть Listbox

Щоб вставити Listbox у аркуш, вам потрібно перейти до Вкладка розробник, клацніть Вставити і в розділі Елементи керування ActiveX виберіть Список:

Зображення 1. Вставте Listbox у аркуш

Вибравши вставлений список, ви можете натиснути на Властивості під Вкладка розробник:

Зображення 2. Змінити властивості Listbox

Тут ви можете встановити різні властивості Listbox. Для початку ми змінили атрибут Назва до lstListBox. Тепер ми можемо використовувати Listbox з такою назвою у коді VBA.

Заповніть Listbox у коді VBA

По -перше, нам потрібно заповнити значення Listbox. У більшості випадків під час відкриття книги потрібно заповнювати Listbox. Через це нам потрібно ввести код для заповнення Listbox в об'єкті Робочий зошит, процедура Відчинено. Ця процедура виконується кожного разу, коли користувач відкриває книгу. Ось код:

123456789 З Sheet1.lstListBox.Додавання "Джон".Додаток "Майкл".AddItem "Дженніфер".Додавання "Лілі".Додаток "Роберт"Закінчити з

Як ви можете бачити на зображенні 3, ми заповнили наш список з 5 іменами (Джон, Майкл, Дженніфер, Ліллі та Роберт):

Зображення 3. Заповніть Listbox у VBA

Заповніть поле зі списком із діапазону клітинок

Інший можливий спосіб заповнення Listbox - це дозволити користувачеві це зробити. Listbox можна зв'язати з діапазоном клітинок. Тому кожного разу, коли користувач вводить нове значення в діапазоні комірок, Listbox оновлюватиметься цим значенням.

Якщо ви хочете активувати це, перейдіть до Властивості ListBox і встановіть атрибут ListFillRange:

Зображення 4. Заповніть Listbox з діапазону комірок

Ми зв’язали наш Listbox з діапазоном E2: E5, де ми розмістили потрібні імена (Натан, Гаррі, Джордж, Роберта). В результаті тепер Listbox заповнюється цими іменами.

Отримайте вибраний елемент Listbox у VBA

Метою Listbox є вибір користувачів. Для того, щоб отримати значення, вибране користувачем, потрібно скористатися цим кодом:

123 Затемнити strSelectedItem як варіантstrSelectedItem = Sheet1.lstListBox.Value

Вибір користувачів є в атрибуті Цінність з Sheet1.lstListbox об'єкт. Це значення присвоюється змінній strSelectedItem:

Зображення 5. Отримайте вибране значення з Listbox у VBA

Ми вибрали Гаррі у Listbox та виконав процедуру. Як ви можете бачити на зображенні 5, значення strSelectedItem є Гаррі, це значення, яке ми вибрали. Крім того, ви можете обробити цю змінну в коді.

Очистіть поле зі списком

Щоб очистити Listbox у VBA, потрібно скористатися Ясно метод Sheet1.lstListBox об'єкт. Він видалить усі елементи зі списку. Ось код:

1 Sheet1.lstListBox.Clear

Коли ми виконуємо код, ми отримуємо порожній Listbox:

Зображення 6. Очистіть поле зі списком

Використовуйте Listbox у формі користувача

Як ми вже згадували, Listbox найчастіше використовується у формах користувача. Щоб пояснити, як це можна зробити, спочатку ми вставимо Userform. У редакторі VBA клацніть правою кнопкою миші назву модуля, клацніть Вставити і виберіть UserForm:

Зображення 7. Вставте форму користувача

Щоб відобразити елементи керування для вставлення, потрібно ввімкнути Набір інструментів. Для цього натисніть наНабір інструментів на панелі інструментів. Після цього ви отримаєте вікна з усіма доступними елементами управління. Ви можете натиснути на ListBox створити його у формі користувача.

Зображення 8. Вставте Listbox у Userform

Ми назвемо ComboBox cmbComboBox. Щоб заповнити його значеннями, нам потрібно вставити наступний код у метод Ініціалізувати об'єкта UserForm:

12345678910111213 Приватний підкористувач UserForm_Initialize ()За допомогою UserForm1.lstListBox.Додавання "Джон".Додаток "Майкл".AddItem "Дженніфер".Додавання "Лілі".Додаток "Роберт"Закінчити зEnd Sub

Цей код спрацьовує кожного разу, коли користувач запускає Userform і заповнює Listbox такими 5 іменами:

Зображення 9. Список зі значеннями у формі користувача

Якщо ви хочете отримати вибране значення з ComboBox, вам потрібно використовувати таку ж логіку для Combobox у робочому аркуші, що пояснюється раніше у статті.

wave wave wave wave wave