Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

ИТМ_13 / UserForms_примеры

.doc
Скачиваний:
103
Добавлен:
16.03.2015
Размер:
268.8 Кб
Скачать

Excel включает 15 различных элементов управления, которые можно использовать на UserForms. Этот раздел содержит различные примеры использования этих элементов управления программными средствами. Примечание Код VBA, эта статья не содержит примеры, которые влияют на свойства и события для элементов управления. Если необходимо, можно использовать окно Свойства для просмотра списка свойств, доступных для элемента управления. Чтобы просмотреть список свойств, в меню Вид , щелкните Окно свойств.

Использование режима конструктора для редактирования элементов управления

При использовании редактора Visual Basic для создания диалогового окна в режиме конструктора. В режиме конструктора можно редактировать элементы управления, и можно изменить свойства элемента управления на пользовательской форме в окне «Свойства». Чтобы открыть окно Свойства, в меню Вид выберите пункт Окно свойств. Примечание Находясь в режиме конструктора элементов управления не отвечают на события. При запуске диалогового окна для отображения, пользователи видят его как программа находится в режиме выполнения. Когда UserForm выгружается из памяти не сохраняются изменения, внесенные в свойства элемента управления в режиме выполнения. Примечание Элементы управления реагировать на события в режиме выполнения.

Обращение к элементам управления на пользовательской форме

При обращении к элементам управления программными средствами зависит от типа листа модуля Visual Basic, где выполняется код. Если код выполняется из общего модуля, имеет следующий синтаксис:

UserFormName.Controlname.Property = Значение

Например если необходимо установить свойство Text элемента управления TextBox с именем TextBox1 на пользовательской форме с именем UserForm1 значение Bob, используйте следующий код:

UserForm1.TextBox1.Text = "Bob"

Если код в процедуре, которая инициируется событие элемента управления или UserForm, нет необходимости ссылаться на имя пользовательской формы. Вместо этого используйте следующий код:

TextBox1.Text = "Bob"

При присоединении к объекту код, код присоединен к одному из этого объекта события. Во многих примерах в данной статье добавьте код в событие Click элемента управления CommandButton объекта.

Элементы управления Label

Элементы управления Label в основном используются для описания других элементов управления на пользовательской форме. Элемент управления Label не может редактироваться пользователем во время выполнения пользовательской формы. Используйте свойство заголовка для установки или для возврата текста в элементе управления Label . Другие часто используемые свойства форматирования элемента управления Label включают свойства шрифта и цвет текста .

Как использовать оператор WITH для форматирования элемента управления Label

Чтобы использовать оператор WITH для изменения свойств элемента управления Label , выполните следующие действия.

Запустите Excel и откройте новую книгу.

В меню Сервис выберите пункт Макрос и нажмите кнопку Редактор Visual Basic.

В меню Вставка выберите команду UserForm UserForm вставить в книгу.

Добавьте элемент управления Label для пользовательской формы.

Добавьте элемент управления CommandButton пользовательской формы.

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

В окне кода введите следующий код для события CommandButton1 Click :

Private Sub CommandButton1_Click()

With Label1

' Set the text of the label.

.Caption = "This is Label Example 1"

' Automatically size the label control.

.AutoSize = True

.WordWrap = False

' Set the font used by the Label control.

.Font.Name = "Times New Roman"

.Font.Size = 14

.Font.Bold = True

' Set the font color to blue.

.ForeColor = RGB(0, 0, 255)

End With

End Sub

В меню выполнить выберите команду Run Sub/UserForm.

Нажмите CommandButton.

Текст "это пример 1" появляется в элементе управления Label в полужирный шрифт Times New Roman с размером шрифта 14.

Элементы управления TextBox

Элементы управления TextBox часто используются для ввода данных пользователем. Свойство Text содержит записи, сделанные в элементе управления TextBox .

Использование элемента управления TextBox для проверки пароля

Если значение свойства PasswordChar элемента управления TextBox , становится управления «замаскированы edit». Символ, который указывается визуально заменяется каждый символ, который пользователь введет в элемент управления TextBox . Чтобы использовать элемент управления TextBox для проверки пароля, выполните следующие действия.

Запустите Excel и откройте новую книгу.

В меню Сервис выберите пункт Макрос и нажмите кнопку Редактор Visual Basic.

В меню Вставка выберите команду UserForm UserForm вставить в книгу.

Добавьте элемент управления TextBox для пользовательской формы.

В меню Вид выберите команду Свойства для отображения окна «Свойства».

Введите в поле свойства PasswordChar элемента управления TextBox *. Примечание Изменения значения звездочку.

Добавьте элемент управления CommandButton пользовательской формы.

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

В окне кода введите следующий код для события CommandButton1 Click :

Private Sub CommandButton1_Click()

If TextBox1.Text <> "userform" Then

MsgBox "Password is Incorrect. Please reenter."

TextBox1.Text = ""

TextBox1.SetFocus

Else

MsgBox "Welcome!"

Unload Me

End If

End Sub

В меню выполнить выберите команду Run Sub/UserForm.

Введите пароль пользовательской формы в элементе управления TextBox .

Щелкните элемент управления CommandButton.

Например пароль — «userform». При вводе неверного пароля, появляется окно сообщения, которое указывает, что указан неверный пароль установлен элемент управления TextBox и затем повторно введите пароль. При вводе правильного пароля появится приветственное сообщение и Пользовательская форма закрывается. Для получения дополнительных сведений щелкните следующий номер статьи базы знаний Майкрософт:

213555

(http://support.microsoft.com/kb/213555/)

XL2000: Отсутствует свойство проверки данных для UserForm текстовые поля

Элементы управления CommandButton

Для запуска процедуры VBA можно использовать элемент управления CommandButton . Процедуры VBA обычно присоединяется к событию Click элемента управления CommandButton . Чтобы использовать элемент управления CommandButton , процедуры, запускаемую при возникновения события Click , выполните следующие действия.

Запустите Excel и откройте новую книгу.

В меню Сервис выберите пункт Макрос и нажмите кнопку Редактор Visual Basic.

В меню Вставка выберите команду UserForm UserForm вставить в книгу.

Добавьте элемент управления CommandButton пользовательской формы.

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

В окне кода введите следующий код:

Private Sub CommandButton1_Click()

red = Int(Rnd * 255)

green = Int(Rnd * 255)

blue = Int(Rnd * 255)

CommandButton1.BackColor = RGB(red, green, blue)

End Sub

В меню выполнить выберите команду Run Sub/UserForm.

Цвет фона элемента управления CommandButton1 изменяется каждый раз, щелкните его. Дополнительные сведения об элементе управления CommandButton щелкните следующие номера статей базы знаний Майкрософт:

213572

(http://support.microsoft.com/kb/213572/)

XL2000: Нажать кнопку "Отмена" не может выйти из пользовательской формы

213743

(http://support.microsoft.com/kb/213743/)

XL2000: Как установить по умолчанию кнопке на пользовательской форме

Элементы управления ListBox

Элемент управления ListBox предназначен для предоставить пользователю список элементов для выбора. Можно хранить список элементов для элемента управления ListBox на листе Excel. Чтобы заполнить элемент управления ListBox с диапазона ячеек на листе, используйте свойство Источник строк . При использовании свойства MultiSelect , можно настроить элемент управления ListBox принять множественный выбор.

Получение текущего выделенного элемента из элемента управления ListBox

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

Запустите Excel и откройте новую книгу.

В ячейках ячейки a1 Dan: a5 на листе Sheet1 введите значения, которые требуется использовать для заполнения элемента управления ListBox .

В меню Сервис выберите пункт Макрос и нажмите кнопку Редактор Visual Basic.

В меню Вставка выберите команду UserForm UserForm вставить в книгу.

Добавьте элемент управления ListBox для пользовательской формы.

Дважды щелкните элемент управления ListBox для отображения окна кода для элемента управления ListBox .

В окне кода введите следующий код для события ListBox1 Click :

Private Sub ListBox1_Click()

MsgBox ListBox1.Value

End Sub

В меню выполнить выберите команду Run Sub/UserForm.

При выборе элемента в списке появится сообщение с текущего выбранного элемента.

Получение выбранных элементов в нескольких выбора элемента управления ListBox

Для определения элементов, выбранных в выделить несколько элементов управления ListBox , необходимо перебрать все элементы в списке и затем запросить свойство Selected . Для возвращения элементов, выделенных в выделить несколько элементов управления ListBox , выполните следующие действия.

Запустите Excel и откройте новую книгу.

В ячейках ячейки a1 Dan: a5 на листе Sheet1 введите значения, которые требуется использовать для заполнения элемента управления ListBox .

В меню Сервис выберите пункт Макрос и нажмите кнопку Редактор Visual Basic.

В меню Вставка выберите команду UserForm UserForm вставить в книгу.

Добавьте элемент управления ListBox для пользовательской формы.

В меню Вид выберите команду Свойства , чтобы открыть окно свойств.

Введите значения, которые определены для следующих свойств элемента управления ListBox :

Property Value

----------- -----------------------

MultiSelect 1 - frmMultiSelectMulti

RowSource Sheet1!A1:A8

Добавьте элемент управления CommandButton пользовательской формы.

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

В окне кода введите следующий код для события CommandButton1 Click :

Sub CommandButton1_Click ()

' Loop through the items in the ListBox.

For x = 0 to ListBox1.ListCount - 1

' If the item is selected...

If ListBox1.Selected(x) = True Then

' display the Selected item.

MsgBox ListBox1.List(x)

End If

Next x

End Sub

В меню выполнить выберите команду Run Sub/UserForm.

Выберите один или несколько элементов в списке.

Нажмите кнопку CommandButton1.

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

Как с помощью свойства Источник строк для заполнения элемента управления ListBox ячейками на листе

Использование свойства Источник строк для заполнения элемента управления ListBox из диапазона ячеек на листе, выполните следующие действия.

Запустите Excel и откройте новую книгу.

В ячейках ячейки a1 Dan: a5 на листе Sheet1 введите значения, которые требуется использовать для заполнения элемента управления ListBox .

В меню Сервис выберите пункт Макрос и нажмите кнопку Редактор Visual Basic.

В меню Вставка выберите команду UserForm UserForm вставить в книгу.

Добавьте элемент управления ListBox для пользовательской формы.

Добавьте элемент управления CommandButton пользовательской формы.

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

В окне кода введите следующий код для события CommandButton1 Click :

Private Sub CommandButton1_Click()

ListBox1.RowSource = "=Sheet1!A1:A5"

End Sub

В меню выполнить выберите команду Run Sub/UserForm. ПримечаниеListBox1 не содержит никаких значений.

Нажмите кнопку CommandButton1.

Значения в ячейки a1: a5 ячеек на листе Sheet1 заполняется ListBox1 .

Как заполнить элемент управления ListBox значениями в массиве

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

Запустите Excel и откройте новую книгу.

В меню Сервис выберите пункт Макрос и нажмите кнопку Редактор Visual Basic.

В меню Вставка выберите команду UserForm UserForm вставить в книгу.

Добавьте элемент управления ListBox для пользовательской формы.

В меню Вставка выберите пункт модуль для вставки в лист модуля.

В окне кода введите следующий код:

Sub PopulateListBox()

Dim MyArray As Variant

Dim Ctr As Integer

MyArray = Array("Apples", "Oranges", "Peaches", "Bananas", "Pineapples")

For Ctr = LBound(MyArray) To UBound(MyArray)

UserForm1.ListBox1.AddItem MyArray(Ctr)

Next

UserForm1.Show

End Sub

В меню Сервис пункт макросы, нажмите кнопку PopulateListBoxи выберите команду выполнить.

PopulateListBox процедура построения простого массива и затем добавляет элементы в массиве элемент управления ListBox с помощью метода AddItem . После этого появится пользовательской формы.

Как использовать горизонтальный диапазон ячеек на листе для заполнения элемента управления ListBox

Если значение свойства Источник строк элемента управления ListBox в горизонтальный диапазон ячеек, только первое значение отображается в элементе управления ListBox . Чтобы заполнить элемент управления ListBox в горизонтальный диапазон ячеек с помощью метода AddItem , выполните следующие действия.

Запустите Excel и откройте новую книгу.

В A1:E1 ячеек на листе Sheet1 введите значения, которые требуется использовать для заполнения элемента управления ListBox .

В меню Сервис выберите пункт Макрос и нажмите кнопку Редактор Visual Basic.

В меню Вставка выберите команду UserForm UserForm вставить в книгу.

Добавьте элемент управления ListBox для пользовательской формы.

В меню Вставка выберите пункт модуль для вставки в лист модуля.

В окне кода введите следующий код:

Sub PopulateListWithHorizontalRange()

For Each x In Sheet1.Range("A1:E1")

UserForm1.ListBox1.AddItem x.Value

Next

UserForm1.Show

End Sub

В меню Сервис пункт макросы, нажмите кнопку PopulateListWithHorizontalRangeи выберите команду выполнить.

Процедура макрос просматривает ячейки a1: E5 на листе Sheet1, добавления значений в ListBox1 одно одновременно. ПримечаниеНа листе Лист1 ListBox1 не привязан к ячейки a1: E5.

Способ возврата нескольких значений из элемента управления ListBox, к которому привязан к нескольким столбцам данных

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

Запустите Excel и откройте новую книгу.

В ячейках, которые указаны на листе Лист1 введите следующие данные:

Свернуть эту таблицуРазвернуть эту таблицу

A1: год

B1: область

C1: продажи

A2: 1996

B2: Северная

C2: 140

A3: 1996

B3: Южная

C3: 210

A4: 1997

B4: Северная

C4: 190

A5: 1997

B5: Южная

C5: 195

В меню Сервис выберите пункт Макрос и нажмите кнопку Редактор Visual Basic.

В меню Вставка выберите команду UserForm UserForm вставить в книгу.

Добавьте элемент управления Label для пользовательской формы.

Добавьте элемент управления ListBox для пользовательской формы.

Щелкните списокправой кнопкой мыши и выберите команду Свойства.

Введите или выберите значения, которые определены для следующих свойств элемента управления ListBox , перечисленные в следующей таблице:

Property Value

----------------------------

BoundColumn 1

ColumnCount 3

ColumnHeads True

RowSource Sheet1!A2:A5

Дважды щелкните элемент управления ListBox для отображения окна кода для элемента управления ListBox .

В окне кода введите следующий код:

Private Sub ListBox1_Change()

Dim SourceData As Range

Dim Val1 As String, Val2 As String, Val3 As String

Set SourceRange = Range(ListBox1.RowSource)

Val1 = ListBox1.Value

Val2 = SourceRange.Offset(ListBox1.ListIndex, 1).Resize(1, 1).Value

Val3 = SourceRange.Offset(ListBox1.ListIndex, 2).Resize(1, 1).Value

Label1.Caption = Val1 & " " & Val2 & " " & Val3

End Sub

В меню выполнить выберите команду Run Sub/UserForm.

Если щелкнуть запись в элементе управления ListBox , метки изменяется для отображения всех трех элементов в этой записи.

Удаление всех элементов из элемента управления ListBox, который связан с листом

Чтобы удалить все элементы из элемента управления ListBox , который связан с листом, снимите флажок значение, хранящееся в свойстве Источник строк . Для удаления элементов из элемента управления ListBox , который связан с листом, выполните следующие действия.

Запустите Excel и откройте новую книгу.

В ячейках ячейки a1 Dan: a5 на листе Sheet1 введите значения, которые требуется использовать для заполнения элемента управления ListBox .

В меню Сервис выберите пункт Макрос и нажмите кнопку Редактор Visual Basic.

В меню Вставка выберите команду UserForm UserForm вставить в книгу.

Добавьте элемент управления ListBox для пользовательской формы.

Щелкните правой кнопкой мыши элемент управления ListBox и нажмите кнопку Свойства.

В свойстве Источник строк введите Лист1!Ячейки a1: a5.

Добавьте элемент управления CommandButton пользовательской формы.

Дважды щелкните элемент управления CommandButton , чтобы открыть окно кода для элемента управления CommandButton .

В окне кода введите следующий код для события CommandButton1 Click :

Private Sub CommandButton1_Click()

ListBox1.RowSource = ""

End Sub

В меню выполнить выберите команду Run Sub/UserForm. Элемент управления ListBox, добавленного в пользовательской форме заполняется значениями, введенными на листе Sheet1.

Нажмите кнопку CommandButton1.

Все элементы удаляются из ListBox1.

Удаление всех элементов из элемента управления ListBox, который не связан с листом

Нет одной команды VBA, удаляет все элементы из элемента управления ListBox , если список не связана с листа. Чтобы удалить все элементы из элемента управления ListBox , который заполняется из массива Visual Basic, выполните следующие действия.

Запустите Excel и откройте новую книгу.

В меню Сервис выберите пункт Макрос и нажмите кнопку Редактор Visual Basic.

В меню Вставка выберите команду UserForm UserForm вставить в книгу.

Добавьте элемент управления ListBox для пользовательской формы.

В меню Вставка выберите пункт модуль для вставки в лист модуля.

В окне кода введите следующий код:

Sub PopulateListBox()

Dim MyArray As Variant

Dim Ctr As Integer

MyArray = Array("Apples", "Oranges", "Peaches", "Bananas", "Pineapples")

For Ctr = LBound(MyArray) To UBound(MyArray)

UserForm1.ListBox1.AddItem MyArray(Ctr)

Next

UserForm1.Show

End Sub

Добавьте элемент управления CommandButton пользовательской формы.

Дважды щелкните элемент управления CommandButton , чтобы открыть окно кода для элемента управления CommandButton .

В окне кода введите следующий код для события CommandButton1 Click :

Private Sub CommandButton1_Click()

For i = 1 To ListBox1.ListCount

ListBox1.RemoveItem 0

Next I

End Sub

В меню Сервис пункт макросы, нажмите кнопку PopulateListBoxи выберите команду выполнить. Заполнение элемента управления ListBox , а затем появится пользовательской формы.

Нажмите кнопку CommandButton1.

Все элементы удаляются из ListBox1. Дополнительные сведения об элементе управления ListBox щелкните следующие номера статей базы знаний Майкрософт:

161598

(http://support.microsoft.com/kb/161598/)

OFF: Как добавить данные в элемент управления ComboBox или ListBox в Excel или Word

211446

(http://support.microsoft.com/kb/211446/)

XL2000: TextColumn свойство отображает только первый столбец

211896

(http://support.microsoft.com/kb/211896/)

XL2000: Как имитировать пользовательские формы, а сочетание управления списком

211899

(http://support.microsoft.com/kb/211899/)

XL2000: Проблемы с установкой заголовки столбцов в элементе управления ListBox

213721

(http://support.microsoft.com/kb/213721/)

XL2000: Как удалить все элементы из списка или поля со списком

213722

(http://support.microsoft.com/kb/213722/)

XL2000: Как с помощью свойства TextColumn

213723

(http://support.microsoft.com/kb/213723/)

XL2000: Как возвращаемые значения из списка, отображающего несколько столбцов

213746

(http://support.microsoft.com/kb/213746/)

XL2000: Как заполнить элемент управления списком нескольких диапазонов

213748

(http://support.microsoft.com/kb/213748/)

XL2000: Как для заполнения одного списка на основании другого списка

213752

(http://support.microsoft.com/kb/213752/)

XL2000: Использование метода AddItem вызывает ошибку, когда RowSource привязан к данным

213756

(http://support.microsoft.com/kb/213756/)

XL2000: Используя метод RemoveItem с элементом управления ListBox или ComboBox

213759

(http://support.microsoft.com/kb/213759/)

XL2000: Как определить, какие элементы выбраны в поле со списком

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

Элемент управления ComboBox можно использовать раскрывающийся список или поле со списком, где можно выбрать значение в списке или введите новое значение. Свойство Style определяет, если элемент управления ComboBox действует как раскрывающийся список или поле со списком. Примечание В примерах выше для элемента управления ListBox могут также применяться к элементу управления ComboBox , за исключением в примере «Как получить выделить элемент управления ListBox несколько выделенных элементов».

Как добавить новый элемент списка, если элемент управления ComboBox не связана с листом

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

Запустите Excel и откройте новую книгу.

В меню Сервис выберите пункт Макрос и нажмите кнопку Редактор Visual Basic.

В меню Вставка выберите команду UserForm UserForm вставить в книгу.

Добавьте элемент управления поля со списком UserForm.

В меню Вставка выберите пункт модуль для вставки в лист модуля.

В окне кода введите следующий код:

Sub PopulateComboBox()

Dim MyArray As Variant

Dim Ctr As Integer

MyArray = Array("Apples", "Oranges", "Peaches", "Bananas", "Pineapples")

For Ctr = LBound(MyArray) To Ubound(MyArray)

UserForm1.ComboBox1.AddItem MyArray(Ctr)

Next

UserForm1.Show

End Sub

Добавьте элемент управления CommandButton пользовательской формы.

Дважды щелкните элемент управления CommandButton , чтобы открыть окно кода для элемента управления CommandButton .

В окне кода введите следующий код для события CommandButton1 Click :

Private Sub CommandButton1_Click()

Dim listvar As Variant

listvar = ComboBox1.List

On Error Resume Next

' If the item is not found in the list...

If IsError(WorksheetFunction.Match(ComboBox1.Value, listvar, 0)) Then

' add the new value to the list.

ComboBox1.AddItem ComboBox1.Value

End If

End Sub

В меню Сервис пункт макросы, нажмите кнопку PopulateListBoxи выберите команду выполнить. Заполнение элемента управления ComboBox , а затем появится пользовательской формы.

В элементе управления ComboBox введите Mangoes (или любое значение, которое еще нет в списке).

Нажмите кнопку CommandButton1.

Теперь новое значение отобразится в конце списка.

Как добавить новый элемент списка, если элемент управления ComboBox связан с листом

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

Запустите Excel и откройте новую книгу.

В ячейках ячейки a1 Dan: a5 на листе Sheet1 введите значения, которые требуется использовать для заполнения элемента управления ComboBox .

Выделите ячейки a1: a5 ячеек на листе Sheet1.

В меню Вставка выберите пункт Имя и нажмите кнопку Определить. В поле имя введите ListRange и нажмите кнопку ОК. Это создает определенное имя ListRange. Определенное имя ListRange можно использовать для привязки элемента управления ComboBox свойства Источник строк листа.

В меню Сервис выберите пункт Макрос и нажмите кнопку Редактор Visual Basic.

В меню Вставка выберите команду UserForm UserForm вставить в книгу.

Добавьте элемент управления поля со списком UserForm.

В окне Свойства для ComboBox1тип Лист1!ListRange как свойства Источник строк .

Добавьте элемент управления CommandButton пользовательской формы.

Дважды щелкните элемент управления CommandButton , чтобы открыть окно кода для элемента управления CommandButton .

В окне кода введите следующий код для события CommandButton1 Click :

Private Sub CommandButton1_Click()

Dim SourceData As Range

Dim found As Object

Set SourceData = Range("ListRange")

Set found = Nothing

' Try to find the value on the worksheet.

Set found = SourceData.Find(ComboBox1.Value)

' If the item is not found in the list...

If found Is Nothing Then

' redefine ListRange.

SourceData.Resize(SourceData.Rows.Count + 1, 1).Name = "ListRange"

' Add the new item to the end of the list on the worksheet.

SourceData.Offset(SourceData.Rows.Count, 0).Resize(1, 1).Value _

= ComboBox1.Value

' Reset the list displayed in the ComboBox.

ComboBox1.RowSource = Range("listrange").Address(external:=True)

End If

End Sub

В меню выполнить выберите команду Run Sub/UserForm. Пользовательская форма появится на листе Sheet1.

В элементе управления ComboBox введите значение, которое уже не находится в списке.

Нажмите кнопку CommandButton1.

В список добавляется новый элемент, введенный в элемент управления ComboBox , а список, к которому привязан элемент управления ComboBox расширяется для включения ячейки a1: a6.

Отображение списка элемента управления ComboBox при отображении пользовательской формы

В некоторых случаях может быть полезно при первом появлении UserForm представить список элемента управления ComboBox . В следующем примере используется событие активации пользовательской формы. Чтобы отобразить список элемента управления ComboBox , выполните следующие действия.

Запустите Excel и откройте новую книгу.

В ячейках ячейки a1 Dan: a5 на листе Sheet1 введите значения, которые требуется использовать для заполнения элемента управления ComboBox .

В меню Сервис выберите пункт Макрос и нажмите кнопку Редактор Visual Basic.

В меню Вставка выберите команду UserForm UserForm вставить в книгу.

Добавьте элемент управления поля со списком UserForm.

В окне Свойства для ComboBox1тип Лист1!Ячейки a1: a5 как свойства Источник строк .

Соседние файлы в папке ИТМ_13