Vba excel combobox выпадающий список

How to use combobox in excel

Практикум по visual basic содержание

Элемент управления ScrollBar – это полосы прокрутки окна. Некоторые элементы управления (например, TextBox, Listbox) используют такие полосы прокрутки, причём не требуется написание программного кода для выполнения прокрутки. Однако полоса прокрутки как элемент управления Visual Basic хотя и предназначена для выполнения аналогичных функций, но не выполняет автоматически каких – либо действий, т. е. её поведение необходимо программировать. Полоса прокрутки обычно используется для увеличения или уменьшения некоторого значения. Например, с её помощью можно изменять интенсивность цвета, число или громкость звука на мультимедиа – устройстве. Полоса прокрутки обычно применяется для изменения величины в пределах непрерывной шкалы. Существует два вида полос прокрутки: горизонтальная и вертикальная.

Инструмент Slider можно добавить на панель инструментов, отметив флажком, после выбора команды Components опции Project, строку Microsoft Windows Common Controls 5.0.

— пиктограмма этого инструмента.

Slider позволяет выбрать дискретное значение или набор значений из определенного диапазона. В принципе, этот элемент функционирует аналогично ScrollBar.

Свойства

Перед тем как использовать полосу прокрутки или ползунок, необходимо установить для них диапазон прокрутки, который показывает количество шагов прокрутки между крайними позициями бегунка.

Текущее положение бегунка определяется значением свойства Value.

Диапазон прокрутки определяется свойствами Min и Max полосы прокрутки или ползунка. При этом значение Min всегда соответствует верхнему концу полосы, а Max – нижнему (для вертикальной полосы прокрутки), и при прокрутке содержимого окна сверху вниз значение свойства Value увеличивается. Чтобы изменить направление изменения свойства Value, достаточно поменять местами значения свойств Min и Max.

Щелчок на одной из двух кнопок полосы прокрутки со стрелками на полосе изменяет значение свойства Value на величину, определяемую свойством SmallChang. Если пользователь щёлкнет в области между бегунком и какой – либо из кнопок, то значение свойства Value полосы прокрутки и соответственно положение бегунка изменяется на величину, определяемую свойством LargeChange.

Значение свойства Orientation инструмента Slider определяет ориентацию (горизонтальную, вертикальную) движения ползунка. Свойства TickStyle и TickFrequency определяют наличие или отсутствие отметок вдоль полосы движения ползунка, их расположение и их количество.

Задача 22. Разместим на форме элементы TextBox, кнопку («Выход») и горизонтальную полосу прокрутки. Свойству Мах полосы прокрутки присвойте значение 100, а свойству Min – 1. Создадим приложение, где изменение положения бегунка изменяет соответственно числовое значение в текстовом поле с интервалом 1.

Введём код программы:

Private Sub HScroll1_Change()

Private Sub HScroll1_Scroll()

Private Sub выход_Click()

Задача 23. Разместим на форме 3 элемента TextBox, кнопки («очистить», «+», «-») и две горизонтальных полосы прокрутки. Свойству Мах полос прокрутки присвойте значение 32767, а свойству Min – 1. Создадим приложение, где изменение положения бегунка изменяет соответственно числовое значение в текстовых полях с интервалом 1, нажатие кнопок « + », « — » соответственно складывает и вычитает эти значения и выдаёт результат в TextBox3, а кнопка «очистить» очищает TextBox3.

Private Sub Command1_Click ()

Text3.Text = Val (Text1.Text) + Val(Text2.Text)

Private Sub Command2_Click ()

Text3.Text = Val (Text1.Text) — Val (Text2.Text)

Private Sub Command3_Click ()

Private Sub HScroll1_Change ()

Text1.Text = Str (HScroll1.Value)

Private Sub HScroll1_Scroll ()

Text1.Text = Str (HScroll1.Value)

Задача 24. Демонстрация оттенков цветов

Данное приложение демонстрирует все оттенки цветов, полученных с помощью RGB – кодов. Свойству Мах полос прокрутки присвойте значение 255, а свойству Min – 0.

Подключение VBA Excel combobox к данным

Комбинированный элемент управления (combobox) в VBA Excel позволяет создать выпадающий список с предопределенными значениями. Однако часто требуется подключить combobox к данным, чтобы значения в списке автоматически обновлялись в соответствии с изменениями в источнике данных. В этой статье мы рассмотрим, как подключить combobox к данным в VBA Excel.

Для начала необходимо определить источник данных, с которым будет связан combobox. Это может быть диапазон ячеек на листе Excel или таблица базы данных. В данном примере мы будем использовать диапазон ячеек на листе Excel.

Для подключения combobox к данным необходимо выполнить следующие шаги:

  1. Создать combobox на листе Excel или на пользовательской форме VBA.
  2. Установить свойство RowSource combobox на диапазон ячеек, содержащих данные.
  3. Установить свойство ListFillRange combobox на диапазон ячеек, содержащих данные.

Для примера предположим, что на листе «Данные» у нас есть диапазон ячеек с данными, начиная с ячейки A1 и заканчивая ячейкой A10. Для создания combobox на листе «Данные» по следующей таблице.

ID Имя Фамилия
1 Иван Иванов
2 Петр Петров
3 Алексей Алексеев
4 Владимир Владимиров
5 Сергей Сергеев
6 Дмитрий Дмитриев
7 Андрей Андреев
8 Николай Николаев
9 Михаил Михайлов
10 Александр Александров

Чтобы создать combobox на листе «Данные» и подключить его к данным, выполните следующие шаги:

  1. Выберите ячейку, в которой вы хотите разместить combobox.
  2. На вкладке «Разработчик» в группе «Вставка» нажмите на кнопку «Вставка» и выберите «Combobox» из списка элементов управления.
  3. ActiveX combobox будет размещен на листе Excel. Выберите созданный combobox и откройте вкладку «Свойства» в окне «Обозреватель проекта VBA».
  4. Установите свойство «RowSource» combobox на диапазон ячеек с данными, например, «Данные!$A$1:$A$10».
  5. Установите свойство «ListFillRange» combobox на диапазон ячеек с данными, например, «Данные!$A$1:$A$10».

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

В этой статье мы рассмотрели, как подключить combobox к данным в VBA Excel. Ссылка на источник данных может быть диапазоном ячеек на листе Excel или таблицей базы данных. Подключив combobox к данным, можно обеспечить автоматическое обновление списка значений в combobox в соответствии с изменениями в источнике данных.

Формы Элементы управления ScrollBar (полоса прокрутки) и SpinButton (счетчик)

Полосы прокрутки (ScrollBars) чаще всего встречаются в текстовых полях, когда введенный текст полностью на экране не умещается. Однако ничего не мешает вам использовать ScrollBar как отдельный элемент управления (пользователи часто называют его «ползунок») — для выбора пользователем какого-то значения из диапазона (см. рис. 5.9). Обычно такой элемент управления используется для выбора плавно меняющихся значений — например, уровня громкости, яркости, сжатия, приоритета и т.п.

Рис. 5.9 Объекты полосы прокрутки ( ScrollBar) и счетчика ( SpinButton)

Главное событие для этого элемента управления — уже знакомое нам Change. Главные свойства выглядят так:

  • Max и Min — максимальное и минимальные значения, которые можно задать при помощи этого элемента управления. Возможный диапазон — от -32 767 до +32 767. При этом максимальное значение вполне может быть меньше минимального — просто ползунок придется тянуть в обратную сторону.
  • LargeChange и SmallChange — какими шагами будет двигаться ползунок при перемещении его пользователем (путем щелчка на полосе ниже ползунка или при нажатии на кнопку направления соответственно).
  • Orientation — определяет расположение ползунка (вертикальное или горизонтальное). По умолчанию для этого свойства установлено значение 1, что значит, что ориентация определяется автоматически в зависимости от конфигурации отведенного элементу управления пространства на форме (что больше — длина или высота). Однако при помощи этого свойства можно и явно указать вертикальное или горизонтальное расположение ползунка.
  • ProportionalThumb — определяет размер ползунка: будет ли он пропорционален размеру полосы прокрутки (по умолчанию) или фиксированного размера.
  • Value — главное свойство этого элемента управления. Определяет положение ползунка и то значение, которое будет возвращать этот элемент управления программе.

Как правило, применение ползунка без отображения выбранной при помощи него информации не очень приветствуется пользователями. В самом простом варианте то, что выбрано при помощи ползунка, просто отображается в текстовой надписи:

Private Sub ScrollBar1_Change()

В более сложном варианте пользователю можно будет выбирать — использовать ли ползунок или вводить значение в тестовом поле. В этом случае в событии Change для текстового поля необходимо предусмотреть проверку вводимых пользователем значений и обратную связь с ползунком.

Элемент управления SpinButton — эта та же полоса прокрутки, лишенная самой полосы и ползунка. SpinButton используется в тех ситуациях, когда диапазон выбираемых значений совсем небольшой (например, надо выбрать количество копий для печати отчета). Все свойства, которые есть у SpinButton, совпадают со свойствами ScrollBar.

Свойства Combobox

​Это то, что​​ про combobox.​ то.​При этом количество​​Сейчас обратил внимание,​ это совсем не​200?’200px’:»+(this.scrollHeight+5)+’px’);»>Private Sub ComboBox1_Change()​ Combobox нужно записать​Владимир_Сар​, ну комбобокс те,​ того, что VBA​ что это как​ = «» :-)​KuklP​ Text для установки​ = 300 .ColumnCount​Dost1369​ нужно!​Ваш последний вариант​Искал в инете​​ строк списка остается​ что нет взаимосвязи​ сложно!​​ComboBox2.Clear​ UserForm1​: Подскажите как работать​ я думаю Вы​ может и еще​ бы так сказать…свойство,​

​ikki правильно говорит:​​: Присваивать значения КБ​​ значения.​ = 2 .AddItem​:​Dost1369​ это почти то,​ как задать изменяемое​ неизменным.​ между свойством «ColumnCount»​argetlam​With CreateObject(«scripting.dictionary»)​

​Спасибо!​​ с ComboBox, а​ и так догадались,​

CyberForum.ru>

Установка и настройка Combobox в Excel

Combobox представляет собой элемент управления, который позволяет пользователям выбирать один из предварительно определенных вариантов. В Excel VBA, Combobox может быть использован для создания выпадающего списка, где пользователь может выбирать элементы из списка.

Чтобы установить Combobox в Excel, необходимо выполнить следующие шаги:

  1. Откройте Visual Basic для приложений (VBA) в Excel. Введите команду , чтобы открыть редактор VBA.
  2. Вставьте новую форму. Чтобы вставить новую форму, выберите в меню «Вставка» пункт «UserForm». Это откроет новую пустую форму.
  3. Добавьте Combobox на форму. На панели инструментов расположенной справа, выберите инструмент «Combobox» и добавьте его на форму. Обычно Combobox имеет название «Combobox1».
  4. Добавьте список в Combobox. Выделите Combobox на форме и щелкните правой кнопкой мыши, выбрав пункт «Свойства» из контекстного меню. В открывшемся окне свойств Combobox найдите свойство «List» и разверните его. Здесь вы можете добавить элементы в выпадающий список. Введите каждый элемент списка на новой строке или используйте запятую для разделения элементов на одной строке.
  5. Настройте дополнительные параметры Combobox. В окне свойств Combobox вы можете также настроить различные параметры, такие как ширина Combobox, стиль отображения списка и т. д.
  6. Свяжите Combobox с ячейкой. Чтобы связать выбранный элемент Combobox с определенной ячейкой на листе Excel, в окне свойств Combobox найдите свойство «LinkedCell» и установите его значение равным номеру ячейки.

После завершения настройки Combobox, вы можете закрыть редактор VBA и вернуться в Excel. Теперь, при выборе элемента из выпадающего списка Combobox, значение будет автоматически отображаться в связанной ячейке на листе Excel.

Примечание: При использовании Combobox в Excel VBA, вы также можете добавить код обработки событий для изменения и выбора элементов в Combobox. Это позволит вам выполнять определенные действия в зависимости от выбранного элемента в Combobox.

Параметры Parameters

Имя Name Обязательный или необязательный Required/Optional Тип данных Data type Описание Description
Элемент Item Обязательный Required String String Отображаемый текст для нового элемента. The display text for the new item.
Index Index Необязательный Optional Variant Variant Положение элемента в списке. The position of the item in the list. Если этот аргумент опущен, элемент добавляется в конец списка. If this argument is omitted, the item is added to the end of the list.

Свойству RowSourceType указанного элемента управления должен быть присвоено значение List. The RowSourceType property of the specified control must be set to Value List.

Этот метод действителен только для элементов управления списка или поля со списком в формах. This method is only valid for list box or combo box controls on forms.

Нумерация элементов списка начинается с нуля. List item numbers start from zero. Если значение аргумента Item не соответствует существующему номеру элемента, возникает ошибка. If the value of the Item argument doesn’t correspond to an existing item number, an error occurs.

Для списков с несколькими столбцами используйте точку с запятой, чтобы разделять строки для каждого столбца (например, “1010; Red; Large” для списка из трех столбцов). For multiple-column lists, use semicolons to delimit the strings for each column (for example, “1010;red;large” for a three-column list). Если аргумент Item содержит меньше строк по сравнению со столбцами в элементе управления, элементы будут добавлены начиная с самого левого столбца. If the Item argument contains fewer strings than columns in the control, items will be added starting with the left-most column. Если аргумент Item содержит больше строк по сравнению со столбцами в элементе управления, лишние строки игнорируются. If the Item argument contains more strings than columns in the control, the extra strings are ignored.

Используйте метод RemoveItem для удаления элементов из списка значений. Use the RemoveItem method to remove items from the list of values.

VBA-Урок 12.3. Элементы управления (Controls)

Элементы управления также могут использоваться вне форм. В следующем примере мы используем элементы управления прямо на рабочем листе.

Заметьте, что «Режим дизайнера» («Design mode») должен быть активирован, для того чтобы изменять элемент управления, который расположен на рабочем листе (и так же должен быть деактивирован, для того чтобы использовать этот элемент управления).

Перед рассмотрением этого примера, давайте посмотрим на это:

Сейчас, мы хотим добавить цвет фона ячеек и выбрать её основываясь на позиции ползунка в определенной площади 30 строк на 10 колонок.

Свойства вертикального ползунка для прокрутки экрана.

  • Min 1
  • Max 30 (30 строк)
  • Value : позиция ползунка (в данном случае, между 1 и 30)

Горизонтальный ползунок такой же, за исключением Max : 10.

Далее идет код, который будет запускаться каждый раз, когда идет изменение значения ( Value ) вертикального ползунка:

Этот код запускается когда события Change и Scroll возникают и запустят инструкции в не зависимости от того, по какой части ползунка мы щелкнули.

Далее код для вертикального ползунка:

А тут код для горизонтального ползунка:

Вы можете скачать Excel файл с примером: scrollbar.xls

Выпадающий список и Окно со списком (ComboBox and ListBox)

Это начальная точка нашего следующего примера:

Вы можете скачать Excel файл с примером: userform4.xls

Когда форма запускается, мы хотим, чтобы 4 страны были загружены в выпадающий список (используя AddItem метод):

Когда значение выпадающего списка меняется, мы хотим добавить города выбранной страны, используя цикл, подобен предыдущему.

Для того, чтобы сделать это, нам нужно номер колонки и номер строки.

Свойство ListIndex содержит порядковый номер выбранного элемента в выпадающем списке (в отличие от Value, которое содержит значение элемента списка). Заметьте, что ListIndex начинается с номера 0.

Номер колонки получается из:

Чтобы получить количество строк в выбранной колонке определенной страны, мы можем найти номер последней непустой ячейки:

Используя эту информацию, теперь возможно создать цикл, чтобы добавить города в список:

Примечание: Мы могли бы сократить код, но это бы сделало его менее читабельным:

The TextBox

The TextBox Cheat Sheet

Function Operation Example
Text Set the text textbox1.Text = «Apple»
Text Get the text sFruit = textbox1.Text
Value Set the text textbox1.Value = «Apple»
Value Get the text sFruit = textbox1.Value

Setting the Textbox Text

The textbox is used to allows the user to enter text. We can read or write from a text box as follows

TextBoxNotes.Value = "It was the best of times."

sNotes = TextBoxNotes.Value

 
 
The textbox has properties Text and Values. These are the same thing.

From MSDN: For a TextBox, any value you assign to the Text property is also assigned to the Value property.

 
 
The problem with the text box is that the user can enter anything. If the user is entering basic text then this is fine. If the text is to be used for a calculation or for looking up something then we need to validate it.

For example, if the user is going to pick a year between 2010 and 2019 we should use a ComboBox/Listbox that only contains valid years. Then we don’t need to validate the format and range of the user’s entry.

Making a TextBox numeric only

The following code prevents the user entering anything other than a number in the textbox

' https://excelmacromastery.com/
Private Sub textboxComments_KeyPress( _
            ByVal KeyAscii As MSForms.ReturnInteger)
         
    Select Case KeyAscii
        Case Is  vbKey9
            KeyAscii = 0
            Beep
    End Select
         
End Sub

Using a Date Control

If you the user to select a date you can use the MonthView control. It is one of the additional controls that comes with Visual Basic. It works quite well and looks like the standard date picker you see in most applications.

To add the MonthView control:

  1. Go the the Visual Basic editor and make sure the Toolbox is visible(View->Toolbox if it’s not visible).
  2. Select Tools and then Additional Controls from the menu.
  3. Place a check on Microsoft MonthView Control, Version 6.0.
  4. The MonthView control will now appear on the Toolbox.

 
 
To get the user selection from the MonthView control you can use the DateClick event as the following code shows

' https://excelmacromastery.com/
Private Sub MonthView1_DateClick( _	 	 
     ByVal DateClicked As Date)	 	 
 	 	 
    ' Store date in textbox	 	 
    TextBox1.Value = MonthView1.Value	 	 
 	 	 
End Sub	 	 

 
 
For more information on the MonthView see these links:

Привязка поля со списком к ячейке

Чтобы привязать комбинированный список к ячейке на рабочем листе Excel, необходимо свойству ControlSource присвоить адрес ячейки. Это можно сделать непосредственно в окне Properties элемента управления ComboBox или в коде VBA:

Имя листа для составного адреса ячейки берется из названия ярлыка. Если имя листа содержит пробелы, оно заключается в одинарные кавычки. При указании адреса без имени листа, ComboBox привязывается к ячейке на активном листе.

В результате привязки образуется взаимосвязь между свойством Value комбинированного списка и значением ячейки. Все изменения в поле ComboBox дублируются в привязанной ячейке и наоборот, изменения в ячейке приводят к изменению текста в поле.

Чтобы протестировать результаты привязки ячейки к полю со списком ComboBox1, разместите на пользовательской форме UserForm1 еще какой-нибудь элемент управления и запустите следующий код VBA Excel:

1
2
3
4
5
6
7
8
9
10
11

SubTest()

WithUserForm1.ComboBox1

‘Заполняем список ComboBox1 данными

.List=Array(«Красный»,»Оранжевый»,»Желтый»,_

«Зеленый»,»Голубой»,»Синий»,»Фиолетовый»)

‘Привязываем ComboBox1 к ячейке «A1»

.ControlSource=»A1″

‘Открываем форму в немодальном окне

EndWith

UserForm1.Show

EndSub

В результате работы кода пользовательская форма откроется в немодальном окне со значением в поле, скопированном из ячейки «A1» активного листа. Немодальное окно формы позволит редактировать ячейку «A1», не закрывая форму.

Меняйте значение ячейки «A1», нажимайте клавишу «Tab» или «Enter», поле комбинированного списка примет значение ячейки. Меняйте значение поля ComboBox1 с помощью клавиатуры или выбирайте из раскрывающегося списка, нажимайте клавишу «Tab» или «Enter», ячейка «A1» примет значение поля со списком.

Дополнительный элемент управления на форме нужен для передачи ему фокуса нажатием клавиши «Tab» или «Enter», чтобы завершить ввод значения в поле ComboBox1. Иначе новое значение поля будет передано в ячейку «A1» только при закрытии формы.

Добавление элементов в комбо-бокс в VBA Excel

Комбо-бокс является одним из самых удобных элементов управления в VBA Excel. С его помощью можно с легкостью создавать выпадающие списки, в которых пользователь может выбрать одну из нескольких предложенных опций. В этом разделе мы рассмотрим, как добавить элементы в комбо-бокс с помощью VBA кода.

Для начала необходимо создать комбо-бокс на форме или на листе Excel. Для этого можно воспользоваться инструментом «Формы» или «Активные элементы управления» во вкладке «Разработчик». После того как комбо-бокс создан, можно приступить к добавлению элементов.

Существует несколько способов добавления элементов в комбо-бокс с помощью VBA кода:

  1. Добавление элементов вручную
  2. Добавление элементов из диапазона ячеек
  3. Добавление элементов с помощью цикла

1. Добавление элементов вручную

Самый простой способ добавить элементы в комбо-бокс — это добавить их вручную через свойство «List» комбо-бокса. Например:

В этом примере мы добавляем три элемента в комбо-бокс с именем «ComboBox1». Элементы перечисляются внутри массива.

2. Добавление элементов из диапазона ячеек

Можно также добавить элементы из диапазона ячеек в комбо-бокс. Например, если элементы находятся в столбце A начиная с ячейки A1 и заканчивая ячейкой A3, то можно воспользоваться следующим кодом:

В этом примере мы создаем объект «rng», который представляет собой диапазон ячеек от A1 до A3. Затем мы используем свойство «Value» объекта «rng», чтобы получить значения из этих ячеек и добавить их в комбо-бокс.

3. Добавление элементов с помощью цикла

Если необходимо добавить большое количество элементов в комбо-бокс, то можно воспользоваться циклом для автоматического добавления элементов. Например, следующий код добавляет числа от 1 до 10 в комбо-бокс:

В этом примере мы используем цикл «For» для перебора чисел от 1 до 10. На каждой итерации мы вызываем метод «AddItem» комбо-бокса, чтобы добавить текущее число в список элементов.

В заключение, добавление элементов в комбо-бокс с помощью VBA кода — простой и эффективный способ настройки выпадающего списка. С помощью приведенных выше методов вы можете легко добавлять элементы в комбо-бокс и создавать удобные интерфейсы для вашего приложения Excel.

Понравилась статья? Поделиться с друзьями:
Technology trends
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: