Перебор элементов управления в Excel VBA
С помощью всего лишь несколько строк кода, мы можем легко перебрать управления на Excel VBA UserForm. UserForm мы собираемся создать выглядит следующим образом:
Для создания этого UserForm, выполните следующие действия.
-
Откройте редактор Visual Basic. Если проводник проекта не отображается, нажмите кнопку Просмотр, Project Explorer.
-
Нажмите кнопку Вставить, UserForm. Если панель инструментов не появляется автоматически, нажмите кнопку View, Toolbox. Экран должен быть установлен, как показано ниже.
-
Добавьте метку, флажков (первый сверху, второй ниже первого, и так далее) и кнопки управления. После того, как это было закончено, результат должен быть согласован с изображением UserForm, показанным ранее. Например, создать элемент управления флажком, нажав на CheckBox из панели инструментов. Далее, вы можете перетащить флажок на UserForm.
-
Вы можете изменить имена и подписи элементов управления. Имена используются в коде Excel VBA. Титры являются те, которые появляются на экране. Это хорошая практика, чтобы изменить имена элементов управления, но не надо здесь, потому что у нас есть только несколько элементов управления в этом примере. Чтобы изменить заголовок пользовательской формы, меток, флажков и кнопок команд, выберите Вид, Свойство окно и нажмите на каждый элементе управления.
-
Для того, чтобы показать UserForm, поместить командную кнопку на листе и добавьте следующие строки кода:
Private Sub CommandButton1_Click() UserForm1.Show End Sub
Теперь мы создали первую часть UserForm. Хотя это выглядит аккуратным уже ничего не случится еще когда мы нажимаем на кнопку Clear.
-
Откройте редактор Visual Basic.
-
В окне Project Explorer дважды щелкните на UserForm1.
-
Двойной щелчок по кнопке Clear.
-
Добавьте следующие строки кода:
Private Sub CommandButton1_Click() Dim contr As control For Each contr In UserForm1.Controls If TypeName(contr) = "CheckBox" Then contr.Value = False End If Next End Sub
Объяснение: Excel VBA перебирает все элементы управления на UserForm. Функция TypeName используется для фильтрации элементов управления флажков. Если элемент управления флажками, Excel VBA неустановленный флажок. Контр случайным образом выбирается здесь, вы можете использовать любое имя. Не забывайте ссылаться на это имя в остальной части кода.
Результат при нажатии на кнопку Clear: