Excel vba воспринимать текстовую переменную как список
Выпадающий список в Excel с помощью инструментов или макросов
- Вручную через «точку-с-запятой» в поле «Источник».

- Ввести значения заранее. А в качестве источника указать диапазон ячеек со списком.

- Назначить имя для диапазона значений и в поле источник вписать это имя.
Выпадающий список в Excel с подстановкой данных
- Выделяем диапазон для выпадающего списка. В главном меню находим инструмент «Форматировать как таблицу».

- Откроются стили. Выбираем любой. Для решения нашей задачи дизайн не имеет значения. Наличие заголовка (шапки) важно. В нашем примере это ячейка А1 со словом «Деревья». То есть нужно выбрать стиль таблицы со строкой заголовка. Получаем следующий вид диапазона:

- Ставим курсор в ячейку, где будет находиться выпадающий список. Открываем параметры инструмента «Проверка данных» (выше описан путь). В поле «Источник» прописываем такую функцию:



- Сформируем именованный диапазон. Путь: «Формулы» — «Диспетчер имен» — «Создать». Вводим уникальное название диапазона – ОК.

- Создаем раскрывающийся список в любой ячейке. Как это сделать, уже известно. Источник – имя диапазона: =деревья.
- Снимаем галочки на вкладках «Сообщение для ввода», «Сообщение об ошибке». Если этого не сделать, Excel не позволит нам вводить новые значения.

- Вызываем редактор Visual Basic. Для этого щелкаем правой кнопкой мыши по названию листа и переходим по вкладке «Исходный текст». Либо одновременно нажимаем клавиши Alt + F11. Копируем код (только вставьте свои параметры).
- Сохраняем, установив тип файла «с поддержкой макросов».

- Переходим на лист со списком. Вкладка «Разработчик» — «Код» — «Макросы». Сочетание клавиш для быстрого вызова – Alt + F8. Выбираем нужное имя. Нажимаем «Выполнить».
Выпадающий список в Excel с данными с другого листа/файла
- Делаем активной ячейку, куда хотим поместить раскрывающийся список.
- Открываем параметры проверки данных. В поле «Источник» вводим формулу: =ДВССЫЛ(“[Список1.xlsx]Лист1!$A$1:$A$9”).

- Создадим первый выпадающий список, куда войдут названия диапазонов.

- Когда поставили курсор в поле «Источник», переходим на лист и выделяем попеременно нужные ячейки.

- Теперь создадим второй раскрывающийся список. В нем должны отражаться те слова, которые соответствуют выбранному в первом списке названию. Если «Деревья», то «граб», «дуб» и т.д. Вводим в поле «Источник» функцию вида =ДВССЫЛ(E3). E3 – ячейка с именем первого диапазона.

Выбор нескольких значений из выпадающего списка Excel
- Создаем стандартный список с помощью инструмента «Проверка данных». Добавляем в исходный код листа готовый макрос. Как это делать, описано выше. С его помощью справа от выпадающего списка будут добавляться выбранные значения.
- Чтобы выбранные значения показывались снизу, вставляем другой код обработчика.
- Чтобы выбираемые значения отображались в одной ячейке, разделенные любым знаком препинания, применим такой модуль.
- На вкладке «Разработчик» находим инструмент «Вставить» – «ActiveX». Здесь нам нужна кнопка «Поле со списком» (ориентируемся на всплывающие подсказки).

- Щелкаем по значку – становится активным «Режим конструктора». Рисуем курсором (он становится «крестиком») небольшой прямоугольник – место будущего списка.

- Жмем «Свойства» – открывается перечень настроек.

- Вписываем диапазон в строку ListFillRange (руками). Ячейку, куда будет выводиться выбранное значение – в строку LinkedCell. Для изменения шрифта и размера – Font.
VBA Excel. Элемент управления ComboBox (поле со списком)

ComboBox представляет из себя комбинацию двух элементов управления: текстового поля (TextBox) и списка (ListBox), поэтому его еще называют «комбинированным списком» или «полем со списком». Также ComboBox сочетает в себе свойства этих двух элементов управления.
Изначально комбинированный список прорисовывается на форме в виде текстового поля с кнопкой для отображения раскрывающегося списка. Далее по тексту будем использовать слово «поле» в значении текстового поля в составе элемента управления ComboBox, а словосочетание «раскрывающийся список» – в значении списка в составе элемента управления ComboBox.
Поле со списком используется в тех случаях, когда необходимо добавить в форму информацию, которая заранее известна, а ее отдельные позиции можно сгруппировать в список, а также для ручного ввода с клавиатуры или вставки из буфера обмена, если необходимое значение в списке отсутствует.
Элемент управления ComboBox незаменим при больших списках. При списках из нескольких позиций его можно заменить на ListBox, который отображает позиции для выбора сразу после загрузки формы, не требуя дополнительных действий от пользователя.
Свойства поля со списком
| Свойство | Описание |
|---|---|
| AutoSize | Автоподбор размера комбинированного поля. True – размер автоматически подстраивается под длину выбранной или введенной строки. False – размер элемента управления определяется свойствами Width и Height. |
| AutoTab | Включение автоматической табуляции – передачи фокуса следующему элементу управления при достижении максимального числа символов при значениях свойства MaxLenght > 0. True – автоматическая табуляция включена, False – выключена. |
| ColumnCount | Указывает количество столбцов в раскрывающемся списке. Значение по умолчанию = 1. |
| ColumnHeads | Добавляет строку заголовков в раскрывающийся список. True – заголовки столбцов включены, False – заголовки столбцов выключены. Значение по умолчанию = False. |
| ColumnWidths | Ширина столбцов в раскрывающемся списке. Значения для нескольких столбцов указываются в одну строку через точку с запятой (;). |
| ControlSource | Ссылка на ячейку для ее привязки к элементу управления ComboBox. |
| ControlTipText | Текст всплывающей подсказки при наведении курсора на элемент управления. |
| Enabled | Доступ пользователя к полю и раскрывающемуся списку. True – доступ разрешен, False – доступ запрещен*. Значение по умолчанию = True. |
| Font | Шрифт, начертание и размер текста в поле. |
| Height | Высота элемента управления ComboBox. |
| Left | Расстояние от левого края внутренней границы пользовательской формы до левого края комбинированного списка. |
| List | Позволяет заполнить ComboBox данными из одномерного или двухмерного массива, а также обращаться к отдельным элементам раскрывающегося списка по индексам для записи и чтения. |
| ListIndex | Номер выбранной пользователем строки в раскрывающемся списке. Нумерация начинается с нуля. Если ничего не выбрано, ListIndex = -1. |
| ListRows | Количество видимых строк в раскрытом списке. Если общее количество строк больше ListRows, появляется полоса прокрутки. Значение по умолчанию = 8. |
| Locked | Запрет на отображение раскрывающегося списка, ввод и редактирование данных в поле. True – ввод и редактирование запрещены**, False – ввод и редактирование разрешены. Значение по умолчанию = False. |
| MatchRequired | Задает проверку вводимых в поле строк с элементами списка. True – проверка включена (допускается ввод только строк, совпадающих с элементами списка), False – проверка выключена (допускается ввод любых строк). Значение по умолчанию = False. |
| MaxLenght | Максимальная длина строки в поле. Значение по умолчанию = 0, что означает – ограничений нет. |
| RowSource | Источник строк для раскрывающегося списка (адрес диапазона на рабочем листе Excel). |
| TabIndex | Целое число, определяющее позицию элемента управления в очереди на получение фокуса при табуляции. Отсчет начинается с 0. |
| Text | Текстовое содержимое (значение) поля (=Value). |
| TextAlign | Выравнивание текста в поле: 1 (fmTextAlignLeft) – по левому краю, 2 (fmTextAlignCenter) – по центру, 3 (fmTextAlignRight) – по правому краю. |
| Top | Расстояние от верхнего края внутренней границы пользовательской формы до верхнего края комбинированного списка. |
| Value | Текстовое содержимое (значение) поля (=Text). |
| Visible | Видимость поля со списком. True – ComboBox отображается на пользовательской форме, False – ComboBox скрыт. |
| Width | Ширина элемента управления. |
* При Enabled в значении False пользователь не может раскрывать список, а также вводить или редактировать данные в поле.
** Для элемента управления ComboBox действие свойства Locked в значении True аналогично действию свойства Enabled в значении False.
В таблице перечислены только основные, часто используемые свойства поля со списком. Еще больше доступных свойств отображено в окне Properties элемента управления ComboBox, а все методы, события и свойства – в окне Object Browser.
Вызывается Object Browser нажатием клавиши «F2». Слева выберите объект ComboBox, а справа смотрите его методы, события и свойства.
Свойства BackColor, BackStyle, BorderColor, BorderStyle отвечают за внешнее оформление комбинированного списка и его границ. Попробуйте выбирать доступные значения этих свойств в окне Properties, наблюдая за изменениями внешнего вида элемента управления ComboBox на проекте пользовательской формы.
Способы заполнения ComboBox
Используйте метод AddItem для загрузки элементов в поле со списком по одному:
VBA List Box — Как создать список в Excel VBA?

Окно списка — это один из инструментов пользовательской формы в VBA. Как подсказывает само название, список будет содержать весь список значений, данных пользователем. В поле списка VBA входит пользовательская форма. В этой статье мы увидим, как создать список и как хранить значения в списке в Excel VBA.
Поле списка — это поле, в котором могут храниться значения. Из этого списка элементов пользователь может выбрать элемент, показанный в списке.
Мы также можем нарисовать список в обычном листе Excel.
Как создать список в Excel?
Предположим, у вас есть список месяца в одном из листов Excel.

Для этого списка месяцев мы создадим список. Выполните следующие шаги, чтобы создать список в листе Excel:
Шаг 1: Перейдите на вкладку разработчика. Под разработчиком, вкладка Перейти к опции Вставка и под вставкой, опция Перейти к контролю формы, под управлением формы выберите Список.

Шаг 2: После выбора поля списка нарисуйте поле списка на листе Excel.

Шаг 3: Щелкните правой кнопкой мыши на вставленном списке и выберите « Управление форматами» .

Шаг 4: В разделе «Управление форматами» перейдите в « Управление» . Выберите диапазон ввода в качестве диапазона названий месяцев и задайте ссылку на ячейку D1, а затем нажмите « ОК» .

Шаг 5: У нас будет список месяца в списке.

Шаг 6: Выберите любой из элементов в списке и увидите изменение в ячейке D1.

Итак, мы получили 3 в результате в ячейке D1, потому что Мар — третий элемент в списке.
Как создать список в VBA?
Создать окно списка не так просто, как мы видели в приведенном выше примере, вам необходимо иметь значительные знания о макросах Excel VBA.
Вы можете скачать этот шаблон Excel со списком VBA здесь — Шаблон Excel со списком VBA
Окно списка VBA — Пример № 1
Понимание списка VBA.
Вы можете рассмотреть следующий пример для лучшего понимания VBA List Box.
Выполните следующие шаги, чтобы создать список в VBA.
Шаг 1: В окне Visual Basic Вставьте форму пользователя.

Шаг 2: Как только вы вставите форму пользователя, вы увидите панель инструментов вместе с формой пользователя.

Шаг 3: В этом наборе инструментов выберите Список .

Шаг 4: Нарисуйте этот список на форме пользователя.

Шаг 5: После вставки списка, дайте правильное имя этому списку под окном Свойства.

Примечание. Если вы не видите этот список, нажмите клавишу F4, вы увидите окно свойств, подобное приведенному выше.
Шаг 6: Прокрутите вниз и найдите «Источник строки». В этом введите диапазон значений названия вашего месяца вместе с именем листа.

Шаг 7: Как только вы дадите ссылку, вы увидите названия месяцев в списке.

Шаг 8: Теперь в окне свойств списка выберите стиль линии как « 1 — fmListStyleOption ».

Шаг 9: Как только вы выберете стиль линии, вы сразу увидите влияние.

Шаг 10: Запустите этот код, вы увидите список в отдельности.

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

Шаг 11: Когда пользователь выбирает месяц, мы будем хранить данные в ячейке G5. Чтобы сохранить введенные пользователем данные, добавьте код ниже.

Шаг 12: Теперь, если вы запустите код и выберете любой из месяцев, мы увидим значение, выбранное пользователем, в ячейке G5.

Я выбрал Jun, чтобы видеть Jun в ячейке G5. Таким образом, мы можем использовать поле со списком в ваших проектах VBA для получения информации от пользователей.
Окно списка VBA — пример № 2
Метод Add.Items для добавления значений в список
Выполните следующие шаги, чтобы создать список в VBA.
Шаг 1: Создайте новую пользовательскую форму. Вот это UserForm2.
Шаг 2: Добавить список в пользовательской форме 2.

Шаг 3: После вставки списка, дайте правильное имя этому списку в окне свойств, то есть Month_list_Box1 .

Шаг 4: Теперь в окне свойств списка выберите стиль линии как « 1 — fmListStyleOption ».

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

Шаг 6: поместив курсор внутри макроса, выберите « Initialize ».

Шаг 7: Как только вы выбрали «Initialize», мы можем увидеть новый макрос, который будет создан чуть ниже текущего.

Шаг 8: Удалить старый макрос. Под инициализацией пользовательской формы напишите приведенный ниже код, чтобы добавить элементы в список.

Шаг 10: Теперь нажмите кнопку F5, чтобы запустить код, и вы получите следующий вывод.

То, что нужно запомнить
- Если вы даете ссылку на ячейку напрямую, вам необходимо указать имя листа и ссылку на ячейку. (Вам необходимо добавить восклицательный знак (!) Перед именем листа).
- Вы также можете добавить элементы в список с помощью метода Add.Item.
- Если вы хотите разрешить пользователю выбирать более одного элемента, вам нужно выбрать опцию « fmMultiSelectMult» в разделе «Multi-Select» в окне «Свойства».

Рекомендуемые статьи
Это руководство к списку VBA. Здесь мы обсудим, как создать список в Excel и VBA вместе с практическими примерами и загружаемым шаблоном Excel. Вы также можете просмотреть наши другие предлагаемые статьи —
Excel vba воспринимать текстовую переменную как список
День добрый!
Возникла небольшая, но очень существенная для меня проблемка, она не в написании программы а в ее настройки. к сути:
У меня при наведении курсора мышки на текст в программе, а именно на переменную при прогонки программы построчно не показывает ее значение и я не знаю как это исправить или включить или где это меняется вот.
Раньше программа стояла на другом компьютере и изначально когда я начал работать в VBA уже так все и было и это очень удобно помогите пожалуйста вернуть это
День добрый!
Возникла небольшая, но очень существенная для меня проблемка, она не в написании программы а в ее настройки. к сути:
У меня при наведении курсора мышки на текст в программе, а именно на переменную при прогонки программы построчно не показывает ее значение и я не знаю как это исправить или включить или где это меняется вот.
Раньше программа стояла на другом компьютере и изначально когда я начал работать в VBA уже так все и было и это очень удобно помогите пожалуйста вернуть это
Сообщение День добрый!
Возникла небольшая, но очень существенная для меня проблемка, она не в написании программы а в ее настройки. к сути:
У меня при наведении курсора мышки на текст в программе, а именно на переменную при прогонки программы построчно не показывает ее значение и я не знаю как это исправить или включить или где это меняется вот.
Раньше программа стояла на другом компьютере и изначально когда я начал работать в VBA уже так все и было и это очень удобно помогите пожалуйста вернуть это
Заранее СПАСИБО! Автор — CAMOY4KA_21rus
Дата добавления — 08.05.2015 в 10:42
Посмотрите в Тулс — Опшинс
А вообще-то, на мой взгляд, намного удобнее сходить в Виев и нажать Локал Виндоус — у Вас появится отдельное окошко, в котором будут отражаться все переменные запущенного макроса и их значения.
Посмотрите в Тулс — Опшинс
А вообще-то, на мой взгляд, намного удобнее сходить в Виев и нажать Локал Виндоус — у Вас появится отдельное окошко, в котором будут отражаться все переменные запущенного макроса и их значения. _Boroda_
Сообщение Посмотрите в Тулс — Опшинс
А вообще-то, на мой взгляд, намного удобнее сходить в Виев и нажать Локал Виндоус — у Вас появится отдельное окошко, в котором будут отражаться все переменные запущенного макроса и их значения. Автор — _Boroda_
Дата добавления — 08.05.2015 в 10:49