Excel VBA Controls Collection
При создании UserForms в Excel VBA, вы можете использовать коллекцию Controls легко перебрать элементы управления и установить свойство каждого элемента управления к значению конкретного.
UserForm мы собираемся создать выглядит следующим образом:
Для создания этого UserForm, выполните следующие действия:
-
Откройте редактор Visual Basic. Если проводник проекта не отображается, нажмите кнопку Просмотр, Project Explorer.
-
Нажмите кнопку Вставить, UserForm. Если панель инструментов не появляется автоматически, нажмите кнопку View, Toolbox. Экран должен быть установлен, как показано ниже.
-
Добавьте метку, текстовые поля (первый в верхней части, второй ниже первого, и так далее) и кнопки управления. После того, как это было закончено, результат должен быть согласован с изображением UserForm, показанным ранее. Например, создать элемент управления для ввода текста, щелкнув на TextBox из панели инструментов. Далее, вы можете перетащить текстовое поле на UserForm.
-
Чтобы изменить заголовок кнопки UserForm, этикетки и команд, выберите View, Properties Window и нажмите на каждый элементе управления.
-
Для того, чтобы показать UserForm, поместить командную кнопку на листе и добавьте следующие строки кода:
Private Sub CommandButton1_Click() UserForm1.Show vbModeless End Sub
Объяснение: путем добавления vbModeless, вы можете использовать UserForm и работать в рабочем листе, в то же время.
Теперь мы создали первую часть UserForm. Хотя это выглядит аккуратным уже ничего не случится еще когда мы нажмем кнопку команды на UserForm.
-
Откройте редактор Visual Basic.
-
В окне Project Explorer дважды щелкните на UserForm1.
-
Дважды щелкните по командной кнопке.
-
Добавьте следующие строки кода:
Private Sub CommandButton1_Click() Dim i As Integer For i = 1 To 10 Controls("TextBox" & i).Value = Cells(i + 1, 1).Value Next i End Sub
Объяснение: С помощью всего лишь несколько строк кода, мы можем заполнить текстовые поля с номерами телефонов из листа. Мы использовали и оператор для конкатенации (объединение) элементов. Эти строки кода работают, потому что мы не изменили имена элементов управления текстового поля (TextBox1, TextBox2, TextBox3 и т.д.). Для того, чтобы изменить имена элементов управления, выберите Вид, Свойства окна и нажмите на каждый элемент управления.
Результат при нажатии на кнопку управления на листе: