Kombobox – je to jeden z nejužitečnějších ovládacích prvků, který vám umožňuje zadávat data z předem určeného seznamu. V aplikaci VBA Excel je kombobox nedílnou součástí vývoje uživatelského rozhraní, které usnadňuje zadávání dat a umožňuje snadnou práci s tabulkami a databázemi.
V tomto článku se podrobně podíváme na to, jak vyplnit kombobox v aplikaci VBA Excel a podíváme se na základní metody a vlastnosti, které vám pomohou vytvořit uživatelsky přívětivé a funkční rozhraní pro vaši pracovní knihu.
Hlavními metodami pro vyplnění kombinovaného boxu VBA Excel jsou metody AddItem a ColumnWidths, které vám umožňují přidat položky do seznamu komboboxů a nastavit šířku reproduktorů pro seznam podle toho.
Aplikace kombinovaného boxu VBA Excel může být rozmanitá, od výběru položek z příručky až po filtrování dat v tabulce. Tento článek se zabývá základními příklady použití komboboxu, které vám pomohou rychleji a pohodlněji pracovat v aplikaci VBA Excel.
Jak vyplnit kombinovaný Box VBA Excel
Zde je příklad kódu, který vám umožní vyplnit datový Box:
Sub FillComboBox()Dim comboBox As ComboBoxSet comboBox = Sheet1.ComboBox1comboBox.Clear ' очищаем комбобокс перед заполнением' заполняем комбобокс данными из массиваcomboBox.List = Array("Значение 1", "Значение 2", "Значение 3")End Sub
V tomto příkladu vytvoříme objekt komboboxu pomocí příkazu Set a přivážeme jej k prvku komboboxu na listu pomocí vlastnosti Sheet1.ComboBox1 . Kombobox pak vyčistíme metodou Clear a vyplníme jej daty z pole pomocí vlastnosti List .
Kombobox lze také vyplnit hodnotami z rozsahu buněk pomocí vlastnosti ListFillRange . Chcete-li to provést, musíte zadat rozsah buněk ve formátu list!Rozsah . Zde je příklad kódu:
Sub FillComboBoxFromRange()Dim comboBox As ComboBoxSet comboBox = Sheet1.ComboBox1comboBox.Clear' заполняем комбобокс значениями из диапазона ячеекcomboBox.ListFillRange = "Лист1!A1:A5"End Sub
V tomto příkladu vyplníme kombobox hodnotami z rozsahu buněk A1: A5 na listu List1 . Všimněte si, že před uvedením rozsahu buněk byste měli uvést název listu a vykřičník.
Pomocí kódu VBA Excel lze tedy snadno vyplnit kombinovaný Box hodnotami z pole nebo rozsahu buněk. To je velmi užitečné, pokud chcete dynamicky měnit seznam hodnot v kombinovaném boxu v závislosti na konkrétních podmínkách nebo datech.
Příklady použití komboboxu v aplikaci VBA Excel
1. Vyplnění kombinovaného boxu daty z rozsahu buněk:
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. Vyplnění komboboxu údaji z pole:
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. Vyplňování údajů z výsledku dotazu do databáze:
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
Tyto příklady ukazují různé způsoby, jak vyplnit kombobox v aplikaci VBA Excel. Můžete si vybrat nejpohodlnější způsob v závislosti na kontextu vaší práce a zdroji dat.