Вывод формы на экран (запуск формы)

При отладке программы форму можно запускать непосредственно из VBA. Для этого установите курсор ввода в нужную процедуру (UserForm_Initialize или
КомандныеКнопки) и щелкните по кнопке RunSub/UserForm.

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

Вспомним, что

1) процедуры с ключевым словом Private не могут запускаться сами по себе. Их можно только вызывать из других программ;

2) метод Show вызывает, в том числе, инициализацию формы. Поэтому, если вы инициализируете форму в процедуре UserForm_Initialize, вам придется написать ещё одну программу, которая отображает форму на экране:

SubЗапускФормы()

frmКомандныеКнопки.Show

End Sub

В результате выполнения этой программы управление будет передано в процедуру UserForm_Initialize, а саму эту программу можно связать с кнопкой на панели инструментов или командой меню.

Поле (TextBox) и надпись (Label).

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

1. Форма должна иметь следующий вид:

вывод формы на экран (запуск формы) - student2.ru

Рис. 10‑8. Форма для ввода пароля

2. Максимальная длина пароля должна быть равной 7 символам.

3. Вместо вводимой буквы в поле ввода должна отображаться звездочка.

4. При корректном пароле вывести на экран сообщение «Пароль введен правильно!», а при некорректном вернуть фокус в поле Введите пароль.

5. Проверка пароля осуществляется после щелчка по кнопке OK.

6. Щелчок по кнопке Отмена выгружает форму из оперативной памяти.

7. Кнопку ОК связать с клавишей [Enter], а кнопку Отмена – с клавишей [Escape].

Начальные условия

1) При создании формы присвойте следующие имена элементам управления:

­ кнопке ОК – cmdOK

­ кнопке Отмена – cmdОтмена

­ полю ввода – txtПароль

2) Саму форму назовите frmПароль.

Выполнение задания:

1. В редакторе VBA создайте следующую форму (Рис. 10‑9) и назовите её frmПароль:

вывод формы на экран (запуск формы) - student2.ru

Рис. 10‑9. Конструирование формы Пароль

2. Добавьте командные кнопки OK и Отмена.

3. Для вставки поля ввода воспользуйтесь кнопкой вывод формы на экран (запуск формы) - student2.ru . В окне свойств задайте его имя txtПароль.

4. Чтобы пользователю было понятно, какую информацию он должен водить в поле, сделаем к нему надпись Введите пароль:. Для этого воспользуйтесь инструментом Надпись вывод формы на экран (запуск формы) - student2.ru . Так как в программе не предвидится обращение к этому элементу управления, не будем менять его имя, а вот свойство Caption пропишем (Введите пароль:).

5. В модуле формы наберите код инициализации формы. Для этого дважды щелкните по форме (на экране появится пустая процедураPrivate SubUserForm_Click()), в списке процедур выберите процедуру Initialize, а затем введите код:

Private SubUserForm_Initialize()

cmdOK.Default = True

cmdОтмена.Cancel = True

With txtПароль

.PasswordChar = "*"

. MaxLength = 7

End With

End Sub

6. Дважды щелкните по кнопке cmdOK в форме и введите код для обработки события «Щелчок по кнопке OK»:

Private SubcmdOK_Click()

Dim Пароль As String

'Определяем пароль, который должен ввести пользователь:

Пароль = "Student"

If txtПароль.Text = LCase(Пароль) Then

MsgBox "Пароль введен правильно! "

Unload Me

Else

With txtПароль

.Text = Empty

.SetFocus

End With

End If

End Sub

7. Дважды щелкните по кнопке cmdОтменаи введите код для обработки события «Щелчок по кнопке Отмена»:

Private SubcmdОтмена_Click()

Unload Me

End Sub

8. Протестируйте работу программы при правильном и неправильном пароле.

Обратите внимание на метод SetFocus, который служит для активизации окна/формы/элемента управления. В данном случае, при неправильном пароле, поле ввода txtПароль очищается и получает фокус – мерцающий курсор ввода приглашает пользователя повторить попытку. Этот метод используется и при инициализации формы, чтобы установить активный элемент управления.

Наши рекомендации