VBA Excel. ComboBox — заполнение поля со списком
Создайте пользовательскую форму UserForm1 и разместите на ней поле со списком ComboBox1. Используйте метод AddItem для заполнения элемента управления значениями:
With UserForm1 . ComboBox1
. AddItem «Кружка»
. AddItem «Стакан»
. AddItem «Бокал»
. AddItem «Пиала»
. AddItem «Фужер»
UserForm1 . Show
Скопируйте код и запустите его выполнение, на открывшейся форме раскройте поле со списком, в результате увидите, что элемент управления ComboBox1 заполнен соответствующими значениями:
Заполнение ComboBox значениями из массива
With UserForm1
. ComboBox1 . List = Array ( «Кружка» , «Стакан» , «Бокал» , «Пиала» , «Фужер» )
Dim a ( 4 ) As String
a ( 0 ) = «Кружка»
a ( 1 ) = «Стакан»
a ( 2 ) = «Бокал»
a ( 3 ) = «Пиала»
a ( 4 ) = «Фужер»
With UserForm1
. ComboBox1 . List = a
Заполнение ComboBox значениями из ячеек
With UserForm1
. ComboBox1 . RowSource = «A1:A5»
Чтобы присвоить элементу управления ComboBox значения из диапазона ячеек любого рабочего листа, добавьте ссылку на него перед наименованием диапазона, например, замените «A1:A5» на «Лист1!A1:A5», и поле со списком будет заполнено значениями ячеек «A1:A5», расположенных на листе с именем «Лист1». Имя листа берется из наименования ярлыка.
Очистка ComboBox от значений
ComboBox1 . Clear
ComboBox1 . RemoveItem Index
где Index — порядковый номер элемента в списке ComboBox, нумерация начинается с нуля.
Автоматическое заполнение ComboBox
Предполагается, что, при открытии пользовательской формы или рабочего листа с ComboBox, поле со списком должно быть уже заполнено значениями. Как это сделать?
Заполнение ComboBox на форме
Private Sub UserForm_Initialize ( )
ComboBox1 . List = Лист 8. [ A1 : A15 ] . Value
Private Sub UserForm_Initialize ( )
With ComboBox1
. AddItem «Апельсин»
. AddItem «Банан»
. AddItem «Виноград»
. AddItem «Груша»
. AddItem «Хурма»
Заполнение ComboBox на листе
Private Sub Workbook_Open ( )
Лист 8.ComboBox1.List = Лист 8. [ A1 : A15 ] . Value
Private Sub Workbook_Open ( )
With Лист 8.ComboBox1
. AddItem «Апельсин»
. AddItem «Банан»
. AddItem «Виноград»
. AddItem «Груша»
. AddItem «Хурма»
Более подробно о заполнении данными ComboBox можно прочитать в статье о заполнении ListBox, так как оба эти элемента управления используют одинаковые способы заполнения. Иногда возникает необходимость заполнения элементов управления ListBox и ComboBox уникальными значениями из диапазона ячеек с повторяющимся содержимым. Смотрите, как отсортировать уникальные элементы из списка с помощью объектов Collection и Dictionary. Вы можете скачать файл Excel с представленными выше примерами. Файл упакован в ZIP-архив. Для проверки работоспособности кода, непосредственно в редакторе VBA помещайте курсор внутри тела каждой процедуры и нажимайте кнопку «Run Sub».
ComboBox — значение по умолчанию
Добавление значения по умолчанию вручную
Значение по умолчанию для текстового поля ComboBox можно задать вручную в окне свойств (Properties) выбранного элемента управления: Выберите ComboBox на форме в редакторе VBA и в окне Properties в поле Value впишите нужное значение.
Что такое комбобокс в эксель
Если ComboBox1 на Форме, то добавьте нижеприведённый код в модуль Формы
—
Private Sub ComboBox1_Change()
Sheets(ComboBox1.ListIndex + 1).Select
End Sub
Private Sub UserForm_Initialize()
Dim n As Long
n = Sheets.Count
For i = 1 To n
ComboBox1.AddItem Sheets(i).Name
Next
End Sub
Пользователь
Сообщений: 123 Регистрация: 01.01.1970
07.01.2009 13:33:08
Спасибо, отличный код.
На этой форме есть еще один ComboBox отвечающий за отображение текущего месяца по календарю:
Private Sub UserForm_Initialize()
For M = 1 To 12
ComboBox1.AddItem Format(«1.» & M & «.2000», «mmmm»)
Next M
Private Sub MakeForm()
On Error Resume Next
ThisMonth = ComboBox1.Value
If ThisMonth = «» Then ThisMonth = Format(Date, «mmmm»)
ComboBox1.Value = ThisMonth
Какой код нужно добавить чтобы привязать каждый месяц к определенному диапазону(столбцу) на выбранном листе. Есть соображения использовать массив переменных.
Сообщений: 60940 Регистрация: 14.09.2012
Контакты см. в профиле
07.01.2009 14:07:53
Я вот не понял. К «определенному» это к какому? Вы хотите вносить данные в тот столбец, который соответствует выбранному месяцу в Комбобоксе? Например, Январь — значит в первый столбец, Февраль — второй. Уточните задачу.
Сообщений: 60940 Регистрация: 14.09.2012
Контакты см. в профиле
07.01.2009 14:08:45
И файл было бы неплохо приложить.
Пользователь
Сообщений: 123 Регистрация: 01.01.1970
07.01.2009 15:20:55
Я хочу вносить данные в тот столбец, который соответствует выбранному месяцу в Комбобоксе.
07.01.2009 15:25:18
Какие данные и откуда берутся? Где файл?
Пользователь
Сообщений: 123 Регистрация: 01.01.1970
07.01.2009 16:44:57
Прикрепленные файлы
- post_43756.xls (242.5 КБ)
Сообщений: 60940 Регистрация: 14.09.2012
Контакты см. в профиле
07.01.2009 21:06:54
NIKOLASCS, шутка неудачная. Я пароль подбирать не буду. Досвидания.
Пользователь
Сообщений: 123 Регистрация: 01.01.1970
07.01.2009 22:37:35
Извините, совсем забыл! Пароль: 1965
Сообщений: 60940 Регистрация: 14.09.2012
Контакты см. в профиле
08.01.2009 04:41:12
Это уже не смешно: файл открывается, а в код заглянуть — ещё один пароль нужен. Может кто и возьмётся.
Пользователь
Сообщений: 123 Регистрация: 01.01.1970
08.01.2009 12:45:34
Пользователь
Сообщений: 1 Регистрация: 01.01.1970
27.07.2010 18:22:54
Юрий М подскажите пожалуйста какой должен быть код если ComboBox находится на листе а не на UsrForm?
Заранее спасибо.
Сообщений: 60940 Регистрация: 14.09.2012
Контакты см. в профиле
27.07.2010 20:07:21
Заранее спасибо.
Если это Вы мне писали в личку, то проверьте почту. А код неизменный. Только событие нужно использовать другое.
16.08.2010 12:05:17
Пожалуйста, Подскажите!
Какое событие, какой синтаксис Combobox, Initialize на листе Excel нужно использовать, чтобы при открытии листа в раскрывающем списке Combobox были
отображены элементы? Не пойму где ошибка в коде:
Private Sub UserForm_Initialize()
With JmpToList
.AddItem «Установки», 1
.AddItem «Помощь», 2
.ListIndex = 0
End With
End Sub
Private Sub JmpToList_Change()
Select Case JmpToList.Value
Case 1: ‘тут я сам разберусь
Case 2: ‘тут я сам разберусь
End Select
End Sub
/И еще:
1. В видимом сразу поле Combobox как запретить ввод информации и отображать
постоянно(вместо названия) конкретное значение?
2. Как по вводу первых в Combobox оставлять только варианты, соответствующие набору символов?
ЗАРАНЕЕ БОЛЬШОЕ СПАСИБО.
16.08.2010 12:08:44
добавочка: Combobox расположен на листе
Сообщений: 60940 Регистрация: 14.09.2012
Контакты см. в профиле
16.08.2010 12:20:46
Если он на листе, то откуда берётся UserForm?
1. JmpToList — это имя КомбоБокса?
Private Sub UserForm_Initialize()
With JmpToList
.AddItem «Установки»
.AddItem «Помощь»
.ListIndex = 0
End With
End Sub
2. Если нужно постоянно отображать только одно значение — зачем КомбоБокс?
16.08.2010 12:34:34
JmpToList — имя Comboboxa
16.08.2010 12:35:47
Это пример.
Мне важно понять суть.
Поэтому, так мало значений списка
16.08.2010 12:40:48
по 2. Очевидно, Вы меня не поняли.
В КомбоБоксе в открытом поле можно ли запретить ввод значений.
Тогда, можно значение этого поля использовать как название КомБоБокса
для пользователей. А уже, нажимая на кнопку, выбирать значения из раскрывающего списка.
Сообщений: 60940 Регистрация: 14.09.2012
Контакты см. в профиле
16.08.2010 12:43:48
Я говорю про первый пункт:
постоянно(вместо названия) конкретное значение?
Зачем тогда КомбоБокс?
16.08.2010 12:44:12
Уважаемый Юрий М!
Мне, главное, на листе видеть в Comboboxe значения.
Как это сделать?
Остальные вопросы менее важны.
Если можете и на них ответьте.
СПАСИБО
Сообщений: 60940 Регистрация: 14.09.2012
Контакты см. в профиле
16.08.2010 12:51:24
Я, вроде, понял: при инициализации формы в КомбоБоксе видим нечто, вроде подсказки. Тогда и напишите, например:
.AddItem «Здесь выбираем фамилию»
А по нажатию кнопочки уже сформировать список, как Вы делали раньше. Не забыв очистить КомбоБокс (Clear).
16.08.2010 12:54:58
Если не нужно использовать UseForm,
то подскажите что использовать.
Сообщений: 60940 Регистрация: 14.09.2012
Контакты см. в профиле
16.08.2010 12:56:25
Я как раз про КомбоБокс на Форме и говорю. Или я чего-то не понимаю?
16.08.2010 13:06:22
Спасибо, попробую.
/Правда, за 2 недели я уже так замахался пробовать.
До Вашего форума.
Если можно, один любой рабочий пример Комбобокса на листе.
с использованием Clear. От определения значений, до их обработки.
СПАСИБО БОЛЬШОЕ.
Сообщений: 60940 Регистрация: 14.09.2012
Контакты см. в профиле
16.08.2010 13:11:27
Мне всё стало сразу ясно 🙂 Может уточните задачу? Файл неплохо увидеть с данным, которые нужно «определить и обработать». Как и чего должно получаться.
16.08.2010 14:43:02
У меня «навороченная» задача, может, даже слишком для Excel,
(я начинал с простых макросов в Excel, теперь проще доделать здесь):
Автоматизированный учет деятельности медицинского центра,
требующий своей обработки, а не использования, к примеру, 1С.
За несколько лет накопилось много макросов в виде кнопок на листах.Неудобно.
С пом. Комбобокса хочу сгруппировать кнопки. Поэтому, открытое поле Комбобокса хочу использовать под название группы кнопок. А кнопкой рядом с этим Комбобоксом хочу сделать обработку выбранного значения в Комбобоксе путем вызова готового макроса.
/Или подскажите другой вариант группировки макросов-кнопок.
Поэтому, мне хватит схематически любой пример рассмотреть,
как правильно создать Комбобокс на листе, как правильно указать значения
раскрывающего списка Комбобокса. А, уже нажимая кнопку рядом с Комбобоксом,
я, используя Select Case в макросе кнопки, буду делать вызовы макросов обработки значений списка Комбобокса.
СПАСИБО ВАМ ЕЩЕ РАЗ ЗА ПОМОЩЬ!
Класс ComboBox — комбинированный список в VBA
Макросы на VBA
Автор Coding На чтение 6 мин Просмотров 1.3к. Опубликовано 22.12.2014
Элемент управления ComboBox VBA языка позволяет формировать комбинированный список. Он предоставляет возможность, как выбирать готовые значения, так и вводить собственные данные. Вообще, стоит сказать, что робота со списками требует отдельной темы по определению, так как наиболее ярким примером создания сложных и комбинированных списков является — формирование базы данных.
Однако и тут есть один момент – большая часть возможностей языка VBA отходит на задний план. Даже продукт Microsoft Access (работа с базами данных), который в былые времена я скрупулезно изучал на уроках информатики, мне на практике ни разу не пригодился.
Поэтому, и в этой статье я не буду вникать во все премудрости компонента ComboBox.
Базовые свойства элемента управления ComboBox VBA языка:
- ColumnCount – позволяет задать количество столбиков в списке
- ColumnWidth – ширина столбиков
- ColumnHeads – определяет, отображать (значение true) или не отображать (значение false) заголовки столбиков.
- RowSource – позволяет задать диапазон для элементов списка
- Value и Text – собственно, текущее значение, что хранится в списке.
Как и для компонента TextBox, для ComboBox главным событием является Change. Событие Change возникает при вводе данных в список.
Ладно, пора приступать к практике. Сначала мы напишем пример использования объекта языка VBA ComboBox в Excel, а потом в Word.
VBA ComboBox Excel
И так, добавьте в окно Проекта новый модуль и новую форму. Модуль назовите ComboBox, а форму – CB_Form, за имена отвечает свойство Name. В редакторе кода для модуля пропишите следующую процедуру:
Sub ComboBox() CB_Form.Show End Sub
Sub ComboBox() CB_Form.ShowEnd Sub
Процедура сделает форму видимой.
Теперь нужно приступить к созданию и настройке формы. Как она выглядит, вы можете просмотреть на картинке, но… для “слепого” браузера я ее опишу.
Параметры формы (UserForm): название (Caption) — работа с ComboBox в VBA, ширина – 340, высота – 190.
Параметры надписи (Label): Имя (Name) L_CB, свойство Caption оставляете пустым, ширина 324, высота 30, отступ слева и сверху равен 6.
Далее нам следует добавить четыре элемента управления vba ComboBox excel, разместите их так: по два в одну строку, имена для каждого компонента задайте такие: CB_A, CB_B, CB_C и CB_D. Я выбрал такие имена потому, что в каждом списке будет отображаться содержимое текущего листа Excel для колонок A, B, C и D.
Это важно. Позаботьтесь, что бы содержимое колонок A-B не было пустым и что бы количество в них элементов не было слишком огромным, достаточно 100 записей максимум. В противном случае у вас возникнут ошибки.
Для наглядности над каждым объектом ComBox vba можете поставить надписи вида: Ячейка А, Ячейка В и так далее.
В самом низу, разместите, кнопку с именем CommandButton1 и напишите на ней “Объединить”.
Ладно, теперь в редакторе кода для форму пропишите следующие процедуры:
Private Sub CommandButton1_Click() L_CB.Caption = CB_A.Value & " " & _ CB_B.Value & " " & _ CB_C.Value & " " & _ CB_D.Value End Sub Private Sub UserForm_Initialize() Dim oColumn As Range Dim oCell As Range 'Заполняем первый список Set oColumn = Columns("A") For Each oCell In oColumn.Cells If oCell.Value <> "" Then CB_A.AddItem oCell.Value End If Next CB_A.ListIndex = 0 'Заполняем второй список Set oColumn = Columns("B") For Each oCell In oColumn.Cells If oCell.Value <> "" Then CB_B.AddItem oCell.Value End If Next CB_B.ListIndex = 0 'Заполняем третий список Set oColumn = Columns("C") For Each oCell In oColumn.Cells If oCell.Value <> "" Then CB_C.AddItem oCell.Value End If Next CB_C.ListIndex = 0 'Заполняем четвертый список Set oColumn = Columns("D") For Each oCell In oColumn.Cells If oCell.Value <> "" Then CB_D.AddItem oCell.Value End If Next CB_D.ListIndex = 0 End Sub
Private Sub CommandButton1_Click()L_CB.Caption = CB_A.Value & » » & _CB_B.Value & » » & _CB_C.Value & » » & _CB_D.ValueEnd SubPrivate Sub UserForm_Initialize()Dim oColumn As RangeDim oCell As Range’Заполняем первый списокSet oColumn = Columns(«A»)For Each oCell In oColumn.CellsIf oCell.Value <> «» ThenCB_A.AddItem oCell.ValueEnd IfNextCB_A.ListIndex = 0’Заполняем второй списокSet oColumn = Columns(«B»)For Each oCell In oColumn.CellsIf oCell.Value <> «» ThenCB_B.AddItem oCell.ValueEnd IfNextCB_B.ListIndex = 0’Заполняем третий списокSet oColumn = Columns(«C»)For Each oCell In oColumn.CellsIf oCell.Value <> «» ThenCB_C.AddItem oCell.ValueEnd IfNextCB_C.ListIndex = 0’Заполняем четвертый списокSet oColumn = Columns(«D»)For Each oCell In oColumn.CellsIf oCell.Value <> «» ThenCB_D.AddItem oCell.ValueEnd IfNextCB_D.ListIndex = 0End Sub
Процедура CommandButton1_Click – тут происходит обработка клика по кнопке. После клика, произойдет считывание выбранных данных для каждого объекта ComboBox vba excel, далее, все четыре значения объединяются и записываются в содержимое свойства Caption объекта Надпись.
Процедура UserForm_Initialize – тут происходит заполнение списков содержимым колонок сразу после инициализации формы. Происходит выбор заданной колонки листа Excel, потом циклично идет перебор всех ее значений и их добавление (метод AddItem) в выбранный список.
VBA ComboBox Word
Тут мы создадим список, состоящий из трех колонок, как он выглядит, можно посмотреть на рисунке. Не буду вникать во все премудрости, а сразу покажу код:
Private Sub UserForm_Initialize() With ComboBox1 .ColumnCount = 3 .ColumnWidths = "50;50;50" .ColumnHeads = False .RowSource = "" End With ComboBox1.AddItem "Украина" ComboBox1.List(0, 1) = "Киев" ComboBox1.List(0, 2) = "Украинский" ComboBox1.AddItem "Россия" ComboBox1.Column(1, 1) = "Москва" ComboBox1.Column(2, 1) = "руский" ComboBox1.AddItem "Белоруссия" ComboBox1.List(2, 1) = "Минск" ComboBox1.List(2, 2) = "русский" ComboBox1.ListIndex = 0 End Sub
Private Sub UserForm_Initialize()With ComboBox1.ColumnCount = 3.ColumnWidths = «50;50;50».ColumnHeads = False.RowSource = «»End WithComboBox1.AddItem «Украина»ComboBox1.List(0, 1) = «Киев»ComboBox1.List(0, 2) = «Украинский»ComboBox1.AddItem «Россия»ComboBox1.Column(1, 1) = «Москва»ComboBox1.Column(2, 1) = «руский»ComboBox1.AddItem «Белоруссия»ComboBox1.List(2, 1) = «Минск»ComboBox1.List(2, 2) = «русский»ComboBox1.ListIndex = 0End Sub
Как видим, при инициализации мы сначала заполняем свойства объекта ComboBox1 в блоке with … wend: три колонки, равной длины, заголовки отсутствуют. Далее происходит ручное заполнение списка. Как видим, элемент первой колонки добавляется с помощью метода AddItem, остальные колонки заполняются как массивы с помощью метода List.
Что такое комбобокс в эксель
Запись: xintrea/mytetra_db_adgaver_new/master/base/1514407087ljugoyjs90/text.html на raw.githubusercontent.com
Элементы управления Combobox
Элементы управления combo box предоставляют пользователю список вариантов выбора. Если число элементов не умещается в окне combo box, на элементе управления автоматически появятся полосы прокрутки. Тогда пользователь сможет пролистать список вверх-вниз или слева направо.
рис . 1.1 Элемент управления Combobox на панели ToolBox
рис. 1.2 Элемент управления Combobox на форме
рис. 1.3 Пример элемента управления Combobox на форме
Когда используется combobox
Обычно combo box используется, когда есть список предложенных вариантов выбора, также combobox сохраняют место в форме. Поскольку полный список не отображается, пока пользователь не нажимает стрелку “вниз” (кроме Стиля 1, который всегда раскрыт), combobox может легко уместиться в маленьком пространстве, где список бы не поместился.
Особенности, связанные с данными
Visual Basic включает и стандартные, и связанные с данными версии элемента управления combobox. Обе версии позволяют отображать, редактировать и модифицировать информацию большинства стандартных типов баз данных, а связанный с данными combobox обеспечивает более продвинутые особенности доступа к данным. Связанный с данными элемент управления combo box поддерживает также иные свойства и методы, чем стандартный элемент управления.
Стили combo box
Есть три стиля поля со списком. Каждый стиль может быть установлен как во время разработки, так и во время выполнения, а для установки стиля combo box используются соответствующие значения или эквивалентные константы Visual Basic.
Раскрывающийся combo box
Простой combo box
Раскрывающийся list box
Рис. 1.1 Стили combobox
С настройкой по умолчанию (Стиль = 0) combo box – раскрывающийся combo box. Пользователь может или непосредственно вводить текст (как в text box), или нажать стрелку справа от combo box, чтобы открыть список выбора.Выбранный вариант вставляется в верхнюю текстовую часть combo box. Пользователь может также открыть список, нажимая ALT + СТРЕЛКУ “ВНИЗ”, когда элемент управления имеет фокус.
Установка свойства Style на 1 – определяет простой combobox, в котором список отображен всегда. Чтобы отобразить все входы в списке, вы должны протянуть достаточно большой список чтобы все входы отобразились. Когда входов больше, чем может отобразить список, автоматически вставляется вертикальная полоса прокрутки. Здесь также пользователь может как вводить текст непосредственно, так и выбирать из списка. Как и раскрывающийся combo box, простой combobox также позволяет пользователям выбирать варианты, которых нет в списке.
Чтобы добавить в combo box элементы, используйте метод AddItem, который имеет следующий синтаксис:
список . AddItem элемент [, индекс ]
Имя list box или combo box.
Строковое выражение, которое надо добавить в список. Если элемент – литеральная константа, включите его в кавычки.
Определяет, где новый элемент должен быть вставлен в список. Индекс 0 представляет первую позицию. Если индекс опущен, элемент вставляется в конец (или в порядке надлежащей сортировки).
Если элементы списка обычно добавляются в процедуру события Form_Load, метод AddItem можно использовать в любое время. Это дает возможность динамически (в ответ на действия пользователя) добавлять элементы в список.
Следующий код размещает “Chardonnay”, “Fumé Blanc”, “Gewürztraminer” и “Zinfandel” в combo box с именем Combo1 с его свойством Style, установленным в 0 (vbComboDropDown):
Private Sub Form_Load ()
Combo1.AddItem “Chardonnay”
Combo1.AddItem “Fumé Blanc”
Combo1.AddItem “Gewürztraminer”
Combo1.AddItem “Zinfandel”
End Sub
Каждый раз, когда форма загружается во время выполнения и пользователь нажимает стрелку “вниз”, появляется список, показанный на рис. 1.2.
Рис. 1.2. Combobox “Список вин”
Добавление элементов во время разработки
Вы можете также вводить в список элементы во время разработки, установив свойство List в окне свойств элемента управления combobox. Когда вы выбираете опцию свойства List и затем нажимаете стрелку “вниз”, вы можете напечатать элементы списка, а затем нажать комбинацию клавиш CTRL+ENTER, чтобы запустить новую строку.
Добавлять элементы вы можете только в конец списка. А если затем вы хотите расположить список в алфавитном порядке, установите свойство Sorted в True.
Добавление элемента в указанную позицию
Чтобы добавить элемент в определенную позицию списка, определите значение индекса после нового элемента. Например, следующая строка программы вставляет “Pinot Noir” в первую позицию, смещая позиции других элементов вниз:
Combo1.AddItem “Pinot Noir”, 0
Обратите внимание, что первый элемент в списке определяется как 0, а не как 1 (см. рис. 1.3).
Рис. 1.3 Добавление элемента в список
Вы можете определить, чтобы элементы были добавлены в список в алфавитном порядке, установив свойство Sorted в True и опуская индекс. Сортировка не учитывает регистр; так что слова “chardonnay” и “Chardonnay” обрабатываются одинаково.
Когда свойство Sorted установлено в True, использование метода AddItem с аргументом index может привести к непредсказуемым, несортируемым результатам.
Для удаления элементов из поля со списком вы можете использовать метод RemoveItem. Он имеет один аргумент – index, который определяет элемент для удаления:
Поле и аргументы index такие же, как и для AddItem.
Например, чтобы удалить первый вход в списке, вы добавляете бы следующую строку программы:
Чтобы удалять все входы списка в поле со списком, используйте метод Clear:
Получение содержания списка через свойство Text
Обычно самый простой способ получить значение выбранного в настоящее время элемента – использование свойства Text. Свойство Text соответствует тому, что введено в часть текстового поля элемента управления во время выполнения. Это может быть выбранный элемент списка или строка, которую пользователь вводит в текстовое поле.
Например, следующий код отобразит информацию о Chardonnay, если пользователь выберет “Chardonnay” из списка:
Private Sub Combo1_Click ()
If Combo1.Text = “Chardonnay” Then
Text1.Text = “Chardonnay – полусухое белое вино.”
End If
End Sub
Свойство Text содержит выбранный в настоящее время элемент в списке Combo1. Код проверяет, был ли выбран “Chardonnay” и если да, то отображает информацию в текстовом поле.
Доступ к элементам списка через свойство List
Свойство List обеспечивает доступ ко всем элементам списка. Это свойство содержит массив, в котором каждый элемент списка является также элементом массива. Каждый элемент представлен в форме строки. Чтобы обратиться к элементу списка, используйте следующий синтаксис:
box . List ( index )
Аргумент box – ссылка на поле со списком, а index – позиция элемента. Верхний элемент имеет index 0, следующий – 1 и так далее. Например, следующая инструкция отображает третий элемент списка в текстовом поле (index = 2):
Определение позиции через свойство ListIndex
Если вы хотите знать позицию выбранного элемента списка в combo box, используйте свойство ListIndex. Это свойство устанавливает или возвращает индекс элемента списка, выбранного в настоящее время в элементе управления, и доступна только во время выполнения. Установка свойства ListIndex для combo box также генерирует событие Click для элемента управления.
Если выбран первый (верхний) элемент, значение этого свойства – 0, если выбран следующий (второй) элемент – 1 и так далее. Если никакой элемент не выбран или если пользователь вводит в combo box (Стиль 0 или 1) свой вариант выбора вместо выбора существующего элемента списка, ListIndex = 1.
Примечание Свойство NewIndex позволяет следить за индексом последнего элемента, добавленного в список. Это может быть полезно при вставке элемента в сортируемый список.
Возвращение числа элементов через свойство ListCount
Чтобы возвратить число элементов в combo box, используйте свойство ListCount. Например, следующая инструкция использует свойство ListCount, чтобы определить число входов в combo box
Text1.Text = “У вас” & Combo1.ListCount & “входов”
Наиболее употребляемые из уникальных свойств элемента управления ComboBox.
Устанавливает вид раскрывающегося списка. Допустимые значения:
- fmDropButtonStylePlain (кнопка без символов)
- fmDropButtonStyleArrowDisplays (кнопка со стрелкой)
- fmDropButtonStyleEllipsis (кнопка с эллипсом)
- fmDropButtonStyleReduce (кнопка с линией)
Устанавливает число элементов, отображаемых в раскрывающемся списке
Допустимые значения:True (в поле ввода раскрывающегося списка нельзя ввести значения, отличные от перечисленных в списке, т.е. в поле со списком отключается функция поля ввода)False (в противном случае)
Допустимые значения:True (среди элементов раскрывающегося списка имеется элемент, совпадающий с вводимым в поле ввода раскрывающегося списка)False (в противном случае)
- Элементы управления VBA: название, значок, описание
- Элементы управления VBA, добавление элементов управления на форму
- TabStrip
- Multipage
- Image
- RefEdit
- Label
- TextBox
- Combobox
- ListBox
- TextBox, Frame, CheckBox
- CheckBox
- OptionButton
- Frame
- CommandButton
- ToggleButton
- ScrollBar
- SpinButton
- Использование классов для элементов управления на форме
- Проверка ввода числа в текстовое поле на форме VBA
- ‘==================== Проверка ввода
- Как убрать заголовок у UserForm VBA
- Как быстро заполнить/очистить элементы на форме(TextBox-ы, ComboBox-ы)
- VBA/Listbox прокрутка колесиком мыши
- Вертикальный скроллинг по ListBox
- Высота строки по содержимому в ListView vba
- Общие сведения о формах, элементах управления форм и элементах ActiveX на листе
- Создание массива контролов в VBA, Управление массивом контролов по событию
- программное создание контролов, MS Access
- Обращение к контролам с помощью объекта «Controls»
- Календарь на форме
- Визуализация работы макроса при помощи прогресс-бара
- Отобразить процесс выполнения
- Позиционирование формы возле ячейки Excel 2007+ без Win API (VBA)
- Определение разрешения экрана