Перейти до основного контенту

Заповнення комбобокса в VBA Excel: докладна інструкція та приклади використання

11 хв читання
292 переглядів

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

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

Основними методами для заповнення комбобокса в VBA Excel є методи AddItem і ColumnWidths, які дозволяють додавати елементи в список комбобокса і встановлювати ширину колонок для списку відповідно.

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

Як заповнити комбобокс у VBA Excel

Ось приклад коду, що дозволяє заповнити комбобокс даними:

Sub FillComboBox()Dim comboBox As ComboBoxSet comboBox = Sheet1.ComboBox1comboBox.Clear ' очищаем комбобокс перед заполнением' заполняем комбобокс данными из массиваcomboBox.List = Array("Значение 1", "Значение 2", "Значение 3")End Sub

В даному прикладі ми створюємо об'єкт комбобокса за допомогою оператора Set і прив'язуємо його до елементу комбобокса на аркуші за допомогою властивості Sheet1.ComboBox1 . Потім ми очищаємо комбобокс методом Clear і заповнюємо його даними з масиву за допомогою властивості List .

Також можна заповнити комбобокс значеннями з діапазону комірок, використовуючи властивість ListFillRange . Для цього необхідно вказати діапазон осередків в форматі Лист!Діапазон . Ось приклад коду:

Sub FillComboBoxFromRange()Dim comboBox As ComboBoxSet comboBox = Sheet1.ComboBox1comboBox.Clear' заполняем комбобокс значениями из диапазона ячеекcomboBox.ListFillRange = "Лист1!A1:A5"End Sub

В даному прикладі ми заповнюємо комбобокс значеннями з діапазону осередків A1: A5 на аркуші Лист1 . Зверніть увагу, що перед зазначенням діапазону осередків слід вказати ім'я листа і знак оклику.

Таким чином, за допомогою коду VBA Excel можна легко заповнити комбобокс значеннями з масиву або діапазону комірок. Це дуже зручно, якщо потрібно динамічно змінювати список значень в комбобоксі в залежності від певних умов або даних.

Приклади використання комбобокса в VBA Excel

1. Заповнення комбобокса даними з діапазону осередків:

Sub FillComboBox()Dim ComboBoxRange As RangeDim ComboBoxValue As VariantDim i As Integer' Определение диапазона ячеек для заполнения комбобоксаSet ComboBoxRange = Range("A1:A5")' Очистка комбобокса перед заполнениемComboBox1.Clear' Заполнение комбобокса данными из диапазона ячеекFor i = 1 To ComboBoxRange.Rows.CountComboBoxValue = ComboBoxRange.Cells(i, 1).ValueComboBox1.AddItem ComboBoxValueNext i' Установка значения по умолчаниюComboBox1.Value = ComboBoxRange.Cells(1, 1).ValueEnd Sub

2. Заповнення комбобокса даними з масиву:

Sub FillComboBoxFromArray()Dim ComboBoxValues() As VariantDim i As Integer' Определение массива значений для заполнения комбобоксаComboBoxValues = Array("Значение 1", "Значение 2", "Значение 3")' Очистка комбобокса перед заполнениемComboBox2.Clear' Заполнение комбобокса данными из массиваFor i = LBound(ComboBoxValues) To UBound(ComboBoxValues)ComboBox2.AddItem ComboBoxValues(i)Next i' Установка значения по умолчаниюComboBox2.Value = ComboBoxValues(LBound(ComboBoxValues))End Sub

3. Заповнення комбобокса даними з результату запиту до бази даних:

Sub FillComboBoxFromDatabase()Dim Connection As ObjectDim Recordset As ObjectDim ComboBoxValue As Variant' Подключение к базе данныхSet Connection = CreateObject("ADODB.Connection")Connection.Open "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\База данных.accdb"' Выполнение запросаSet Recordset = Connection.Execute("SELECT Значение FROM Таблица")' Очистка комбобокса перед заполнениемComboBox3.Clear' Заполнение комбобокса данными из результата запросаDo Until Recordset.EOFComboBoxValue = Recordset.Fields("Значение").ValueComboBox3.AddItem ComboBoxValueRecordset.MoveNextLoop' Установка значения по умолчаниюComboBox3.Value = ComboBox3.List(0)' Закрытие подключения к базе данныхRecordset.CloseConnection.CloseSet Recordset = NothingSet Connection = NothingEnd Sub

Ці приклади показують різні способи заповнення комбобоксу в VBA Excel. Ви можете вибрати найбільш зручний спосіб в залежності від контексту вашої роботи і джерела даних.