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

  1. На вкладке Разработчик нажмите кнопку Вставить.

  2. В контрольной группе ActiveX, нажмите кнопку List Box.

Create a list box in Excel VBA

  1. Перетащите окно списка на листе.

Drag a List Box

Примечание: Вы можете изменить имя элемента управления, щелкнув правой кнопкой мыши на контроле (убедитесь, что выбран режим Design), а затем нажав кнопку Свойства. На данный момент мы оставим listbox1 как имя списка.

Создание Рабочего журнала Open Event. Код добавлен в Workbook Open Event будет выполняться Excel VBA при открытии книги.

  1. Откройте редактор Visual Basic.

  2. Дважды нажмите на эту книгу в окне проекта.

  3. Выберите рабочую книгу с левого выпадающего списка и выберите Открыть с правого выпадающего списка.

Workbook Open Event in Excel VBA

  1. Для добавления элементов в списке, добавьте следующие строки кода к Workbook Open Event:

With Sheet1.ListBox1

.AddItem "Paris"

.AddItem "New York"

.AddItem "London"

End With

Примечание: используйте Лист2, если список ваш ящик находится на втором листе, Sheet3 если список ваш ящик находится на третьем листе, и т.д. Если вы используете эти строки кода вне Workbook открытого события, вы можете добавить следующую строку кода до этих строк кода. Эта строка кода очищает список. Таким образом, ваши пункты не будут добавлены несколько раз, если вы выполнить свой код более чем один раз.

ListBox1.Clear
  1. Для того, чтобы связать этот список для ячейки, щелкните правой кнопкой мыши на окне списка (убедитесь выбран режим уверен, дизайн) и нажмите кнопку Свойства. Заполните D3 для LinkedCell.

LinkedCell

Примечание: Также смотрите свойство ListFillRange заполнить поле со списком с диапазоном ячеек.

  1. Сохраните, закройте и снова откройте файл Excel.

Результат:

List Box

Хотя в некоторых ситуациях это может быть полезно непосредственно поместить окно списка на листе, окно со списком особенно полезно при размещении на UserForm.