Как сделать комбобокс в excel

VBA Excel. ComboBox – заполнение поля со списком

Заполнение ComboBox данными с помощью кода VBA Excel. Добавление значений в поле со списком методом AddItem, из массива и из диапазона рабочего листа. Примеры.

Заполнение ComboBox методом AddItem

Создайте пользовательскую форму UserForm1 и разместите на ней поле со списком ComboBox1. Используйте метод AddItem для заполнения элемента управления значениями:

Скопируйте код и запустите его выполнение, на открывшейся форме раскройте поле со списком, в результате увидите, что элемент управления ComboBox1 заполнен соответствующими значениями:

Как сделать комбобокс в excel

Заполнение ComboBox значениями из массива

Для заполнения элемента управления ComboBox значениями из массива будем использовать свойство поля со списком List и функцию Array:

Результат выполнения кода будет таким же, как и на предыдущем изображении.

Таким же образом можно использовать не только функцию Array, но и переменную массива, предварительно объявленную и заполненную значениями:

Заполнение ComboBox значениями из ячеек

Для заполнения поля со списком значениями из диапазона ячеек рабочего листа будем использовать свойство комбинированного списка RowSource, предварительно заполнив диапазон “A1:A5” активного листа уже известными значениями:

Как сделать комбобокс в excel

Чтобы присвоить элементу управления ComboBox значения из диапазона ячеек любого рабочего листа, добавьте ссылку на него перед наименованием диапазона, например, замените “A1:A5” на “Лист1!A1:A5”, и поле со списком будет заполнено значениями ячеек “A1:A5”, расположенных на листе с именем “Лист1”. Имя листа берется из наименования ярлыка.

Более подробно о заполнении данными ComboBox можно прочитать в статье о заполнении ListBox, так как оба эти элемента управления используют одинаковые способы заполнения.

Иногда возникает необходимость заполнения элементов управления ListBox и ComboBox уникальными значениями из диапазона ячеек с повторяющимся содержимым. Смотрите, как отсортировать уникальные элементы из списка с помощью объектов Collection и Dictionary.

Вы можете скачать файл Excel с представленными выше примерами. Файл упакован в ZIP-архив. Для проверки работоспособности кода, непосредственно в редакторе VBA помещайте курсор внутри тела каждой процедуры и нажимайте кнопку «Run Sub».

Источник

Как сделать комбобокс в excel

Однако и тут есть один момент – большая часть возможностей языка VBA отходит на задний план. Даже продукт Microsoft Access (работа с базами данных), который в былые времена я скрупулезно изучал на уроках информатики, мне на практике ни разу не пригодился.

Поэтому, и в этой статье я не буду вникать во все премудрости компонента ComboBox.

Базовые свойства элемента управления ComboBox VBA языка:

Как и для компонента TextBox, для ComboBox главным событием является Change. Событие Change возникает при вводе данных в список.

Ладно, пора приступать к практике. Сначала мы напишем пример использования объекта языка VBA ComboBox в Excel, а потом в Word.

VBA ComboBox Excel

Как сделать комбобокс в excel

И так, добавьте в окно Проекта новый модуль и новую форму. Модуль назовите ComboBox, а форму – CB_Form, за имена отвечает свойство Name. В редакторе кода для модуля пропишите следующую процедуру:

Процедура сделает форму видимой.

Теперь нужно приступить к созданию и настройке формы. Как она выглядит, вы можете просмотреть на картинке, но… для “слепого” браузера я ее опишу.

Параметры надписи (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 и напишите на ней “Объединить”.

Ладно, теперь в редакторе кода для форму пропишите следующие процедуры:

Процедура CommandButton1_Click – тут происходит обработка клика по кнопке. После клика, произойдет считывание выбранных данных для каждого объекта ComboBox vba excel, далее, все четыре значения объединяются и записываются в содержимое свойства Caption объекта Надпись.

Процедура UserForm_Initialize – тут происходит заполнение списков содержимым колонок сразу после инициализации формы. Происходит выбор заданной колонки листа Excel, потом циклично идет перебор всех ее значений и их добавление (метод AddItem) в выбранный список.

VBA ComboBox Word

Как сделать комбобокс в excel

Тут мы создадим список, состоящий из трех колонок, как он выглядит, можно посмотреть на рисунке. Не буду вникать во все премудрости, а сразу покажу код:

Как видим, при инициализации мы сначала заполняем свойства объекта ComboBox1 в блоке with … wend: три колонки, равной длины, заголовки отсутствуют. Далее происходит ручное заполнение списка. Как видим, элемент первой колонки добавляется с помощью метода AddItem, остальные колонки заполняются как массивы с помощью метода List.

Спасибо за внимание. Автор блога Владимир Баталий

Источник

Элемент управления ComboBox ComboBox control

Объединяет функции ListBox и TextBox. Combines the features of a ListBox and a TextBox. Пользователь может ввести новое значение, как в случае с TextBox, или пользователь может выбрать существующее значение, как с помощью элемента управления ListBox. The user can enter a new value, as with a TextBox, or the user can select an existing value, as with a ListBox.

Примечания Remarks

Если компонент ComboBox привязан к источнику данных, объект ComboBox вставляет значение, которое пользователь введет или выбирает в источнике данных. If a ComboBox is bound to a data source, the ComboBox inserts the value the user enters or selects into that data source. Если поле со списком с несколькими столбцами привязано, свойство BoundColumn определяет, какое значение хранится в связанном источнике данных. If a multi-column combo box is bound, the BoundColumn property determines which value is stored in the bound data source.

Список в ComboBox состоит из строк данных. The list in a ComboBox consists of rows of data. Каждая строка состоит из одного или нескольких столбцов с заголовками (или без них). Each row can have one or more columns, which can appear with or without headings. Некоторые приложения не поддерживают заголовки столбцов, другие — поддерживают только частично. Some applications do not support column headings, others provide only limited support.

Свойством ComboBox по умолчанию является Value. The default property of a ComboBox is the Value property. Событием ComboBox по умолчанию является Change. The default event of a ComboBox is the Change event.

См. также See also

Поддержка и обратная связь Support and feedback

Есть вопросы или отзывы, касающиеся Office VBA или этой статьи? Have questions or feedback about Office VBA or this documentation? Руководство по другим способам получения поддержки и отправки отзывов см. в статье Поддержка Office VBA и обратная связь. Please see Office VBA support and feedback for guidance about the ways you can receive support and provide feedback.

Источник

Объект ComboBox (Access) ComboBox object (Access)

Этот объект соответствует элементу управления «поле со списком». This object corresponds to a combo box control. Элемент управления «поле со списком» сочетает в себе функции текстового поля и поля со списком. The combo box control combines the features of a text box and a list box. Используйте поле со списком, если необходимо ввести значение или выбрать значение из предопределенного списка. Use a combo box when you want the option of either typing a value or selecting a value from a predefined list.

Примечания Remarks

Элемент управления ControlСредство Tool
Как сделать комбобокс в excelКак сделать комбобокс в excel

В представлении формы Microsoft Access не отображает список, пока не будет нажата стрелка поля со списком. In Form view, Microsoft Access doesn’t display the list until you click the combo box’s arrow.

Если у вас есть мастера управления, прежде чем вы наберете инструмент «поле со списком», вы можете создать поле со списком с помощью мастера. If you have Control Wizards on before you select the combo box tool, you can create a combo box with a wizard. Чтобы включить или отключить мастера управления, нажмите кнопку мастера элементов управления на панели инструментов. To turn Control Wizards on or off, click the Control Wizards tool in the toolbox.

Параметр свойства LimitToList определяет, можно ли вводить значения, которых нет в списке. The setting of the LimitToList property determines whether you can enter values that aren’t in the list.

Список может состоять из одного или нескольких столбцов, а столбцы могут отображаться с заголовками или без них. The list can be single- or multiple-column, and the columns can appear with or without headings.

Пример Example

В приведенном ниже примере показано, как использовать несколько элементов управления ComboBox для предоставления критериев для запроса. The following example shows how to use multiple ComboBox controls to supply criteria for a query.

Свойство ColumnWidths указывает ширину двух столбцов. The ColumnWidths property specifies the width of the two columns. Указав для ширины первого столбца значение 0in. первый столбец не отображается в поле со списком. By setting the width of the first column to 0in., the first column is not displayed in the combo box.

В приведенном ниже примере показано, как добавить элемент в привязанное поле со списком. The following example shows how to add an item to a bound combo box.

События Events

Методы Methods

Свойства Properties

См. также See also

Поддержка и обратная связь Support and feedback

Есть вопросы или отзывы, касающиеся Office VBA или этой статьи? Have questions or feedback about Office VBA or this documentation? Руководство по другим способам получения поддержки и отправки отзывов см. в статье Поддержка Office VBA и обратная связь. Please see Office VBA support and feedback for guidance about the ways you can receive support and provide feedback.

Источник

Add a list box or combo box to a worksheet in Excel

When you want to display a list of values that users can choose from, add a list box to your worksheet.

Как сделать комбобокс в excel

Add a list box to a worksheet

Create a list of items that you want to displayed in your list box like in this picture.

Как сделать комбобокс в excel

Click Developer > Insert.

Note: If the Developer tab isn’t visible, click File > Options > Customize Ribbon. In the Main Tabs list, check the Developer box, and then click OK.

Under Form Controls, click List box (Form Control).

Click the cell where you want to create the list box.

Click Properties > Control and set the required properties:

Как сделать комбобокс в excel

In the Input range box, type the range of cells containing the values list.

Note: If you want more items displayed in the list box, you can change the font size of text in the list.

In the Cell link box, type a cell reference.

Tip: The cell you choose will have a number associated with the item selected in your list box, and you can use that number in a formula to return the actual item from the input range.

Under Selection type, pick a Single and click OK.

Note: If you want to use Multi or Extend, consider using an ActiveX list box control.

Add a combo box to a worksheet

You can make data entry easier by letting users choose a value from a combo box. A combo box combines a text box with a list box to create a drop-down list.

You can add a Form Control or an ActiveX Control combo box. If you want to create a combo box that enables the user to edit the text in the text box, consider using the ActiveX Combo Box. The ActiveX Control combo box is more versatile because, you can change font properties to make the text easier to read on a zoomed worksheet and use programming to make it appear in cells that contain a data validation list.

Pick a column that you can hide on the worksheet and create a list by typing one value per cell.

Как сделать комбобокс в excel

Note: You can also create the list on another worksheet in the same workbook.

Click Developer > Insert.

Note: If the Developer tab isn’t visible, click File > Options > Customize Ribbon. In the Main Tabs list, check the Developer box, and then click OK.

Pick the type of combo box you want to add:

Under Form Controls, click Combo box (Form Control).

Under ActiveX Controls, click Combo Box (ActiveX Control).

Как сделать комбобокс в excel

Click the cell where you want to add the combo box and drag to draw it.

To resize the box, point to one of the resize handles, and drag the edge of the control until it reaches the height or width you want.

To move a combo box to another worksheet location, select the box and drag it to another location.

Format a Form Control combo box

Right-click the combo box and pick Format Control.

Click Control and set the following options:

Как сделать комбобокс в excel

Input range: Type the range of cells containing the list of items.

Cell link: The combo box can be linked to a cell where the item number is displayed when you select an item from the list. Type the cell number where you want the item number displayed.

For example, cell C1 displays 3 when the item Sorbet is selected, because it’s the third item in our list.

Как сделать комбобокс в excel

Tip: You can use the INDEX function to show an item name instead of a number. In our example, the combo box is linked to cell B1 and the cell range for the list is A1:A2. If the following formula, is typed into cell C1: =INDEX(A1:A5,B1), when we select the item «Sorbet» is displayed in C1.

Drop-down lines: The number of lines you want displayed when the down arrow is clicked. For example, if your list has 10 items and you don’t want to scroll you can change the default number to 10. If you type a number that’s less than the number of items in your list, a scroll bar is displayed.

Format an ActiveX combo box

Click Developer > Design Mode.

Right-click the combo box and pick Properties, click Alphabetic, and change any property setting that you want.

Here’s how to set properties for the combo box in this picture:

Как сделать комбобокс в excel

Как сделать комбобокс в excel

To set this property

Click BackColor > the down arrow > Pallet, and then pick a color.

Font type, style or size

Click ForeColor > the down arrow > Pallet, and then pick a color.

Link a cell to display selected list value.

Link Combo Box to a list

Click the box next to ListFillRange and type the cell range for the list.

Change the number of list items displayed

Click the ListRows box and type the number of items to be displayed.

Close the Property box and click Designer Mode.

After you complete the formatting, you can right-click the column that has the list and pick Hide.

Need more help?

You can always ask an expert in the Excel Tech Community, get support in the Answers community, or suggest a new feature or improvement on Excel User Voice.

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *