VBA ComboBox

ComboBoxes дозволяють користувачам вибирати опції зі списку, що випадає. ComboBoxes можна створити у форматі користувача VBA або за допомогою робочого аркуша Excel. У цьому посібнику ви дізнаєтесь, як створювати та керувати ComboBox у VBA та робочих аркушах Excel.

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

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

Створіть ComboBox у робочому аркуші Excel

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

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

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

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

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

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

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

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

Натиснувши на спадне меню, ви отримаєте 5 імен на вибір (Джон, Майкл, Дженніфер, Ліллі та Роберт):

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

Заповніть ComboBox із діапазону клітинок

Інший можливий спосіб заповнити ComboBox - це дозволити користувачеві це зробити. ComboBox можна зв’язати з діапазоном комірок. У цьому підході щоразу, коли користувач вводить нове значення в діапазоні комірок, ComboBox оновлюватиметься з цим значенням.

Якщо ви хочете активувати це, перейдіть до Властивості ComboBox і встановіть атрибут ListFillRange до діапазону клітинок (у нашому випадку E2: E5):

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

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

Зображення 5. Заповнення ComboBox із діапазону комірок

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

Мета ComboBox - дати користувачам вибір. Для того, щоб отримати вибір користувача, вам потрібно використовувати цей код:

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

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

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

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

Очистіть ComboBox

Якщо ви хочете очистити ComboBox у VBA, вам потрібно використовувати Ясно метод Sheet1.lstComboBox об'єкт. Він видалить усі елементи з ComboBox. Ось код:

1 Sheet1.cmbComboBox.Clear

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

Зображення 7. Очистіть ComboBox

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

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

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

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

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

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

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

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

Зображення 10. ComboBox зі значеннями у Userform

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

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

wave wave wave wave wave