Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции по Инф_11-12.docx
Скачиваний:
13
Добавлен:
25.12.2018
Размер:
6.65 Mб
Скачать

Лекция №8 Создание форм

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

Мы уже познакомились с самыми простыми возможностями диалога с пользователем (функции InputBox и MsgBox). Однако их очень часто бывает недостаточно. Чаще всего для предоставления пользователю графического интерфейса используются формы VBA.

Форма (Form) – это окно будущего приложения. В процессе разработки приложения эта форма служит как бы холстом, на котором Вы рисуете различные части программы – объекты, или элементы управления.

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

Как выглядит применение форм в приложении VBA? Обычно форма запускается при открытии пользователем документа. Пользователь выполняет на форме какие-то действия по вводу или выбору информации (например, выбирает значения в раскрывающемся списке, устанавливает значения для флажков и переключателей и т.д.). Потом, как правило, нажимает кнопку на этой форме, и введенная им информация передается в базу данных, отправляется по электронной почте, записывается в файл для распечатки и т.д.

Для создания формы необходимо войти в редактор vba:

Вкладка Разработчик/группа инструментов Код/ кнопка Visual Basic

И затем выбрать:

Insert/UserForm

Появится окно формы:

И рядом с ним Toolboxпанель с набором элементов управления.

Выбирая из окна инструментов нужные элементы управления и размещая их на форме, вы создаете «лицо» своей программы.

Для удаления объекта с формы, его выделяют и используют клавишу Del, либо контекстное меню.

Пример: Необходимо поприветствовать человека, чье имя будет введено в текстовое окно

Создадим на форме 3 объекта:

Label1

TextBox1

CommandButton1

Изменим их свойства: для метки и командной кнопки – Caption, чтобы изменить надпись, для формы – Picture, чтобы вставить рисунок, BackColor, чтобы изменить цвет и т.д. Получим:

Для командной кнопки напишем процедуру:

Private Sub CommandButton1_Click()

Tl = TextBox1.Text

TextBox1.Text = "Привет" & Tl & "!"

End Sub

После запуска программы (запуск осуществляется после нажатия на кнопку Run (F5)), вводим в текстовое окно имя и щелкаем по кнопке «Приветствие». В результате получим:

Комбинированные списки

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

Основные свойства списков: List(i) – i-й элемент в списке; ListIndex – номер выбранного элемента в списке; ListCount – количество элементов в списке; RowSource – источник заполнения списка ComboBox или ListBox.

Основные методы обработки списков: AddItem – добавить элемент в список; Clear – удалить весь массив из списка.

Пример: При щелчке по командной кнопке добавить в комбинированный список темы, изучаемые в семестре.

Создадим 3 объекта:

Label1

ComboBox1

CommandButton1

Изменим соответствующие свойства в окне свойств. Для командной кнопки напишем следующую процедуру:

Private Sub CommandButton1_Click()

ComboBox1.AddItem "Visual Basic"

ComboBox1.AddItem "Excel"

ComboBox1.AddItem "Word"

End Sub

В результате получим:

Пример: С помощью элемента управления Флажок (их часто называют «Птички» или «галки»), осуществить выбор и вывод на форму соответствующей картинки (Деда мороза, ракеты или будильника). Щелкая по командной кнопке – вывести в текстовое окно подписи соответствующих рисунков.

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

CommandButton1

2 объекта Imageрисунок

2 объекта OptionButtonфлажок, который позволяет выбрать одну из нескольких возможных опций

Изменим их свойства с помощью окна свойств согласно образцу:

Причем для объектов Image установим свойство Visible = False

Для объектов OptionButton напишем следующие процедуры:

Private Sub OptionButton1_Click()

Image2.Visible = True

Image1.Visible = False

End Sub

Private Sub OptionButton2_Click()

Image1.Visible = True

Image2.Visible = False

End Sub

Для командной кнопки:

Private Sub CommandButton1_Click()

If OptionButton1.Value = True Then TextBox1.Text = "Это Дед мороз"

If OptionButton2.Value = True Then TextBox1.Text = "Это ракета"

End Sub

В результате получим:

Как осуществить переход между формами?

Для этого нужно создать командные кнопки и написать для них следующие процедуры:

Private Sub CommandButton4_Click()

Unload UserForm4

UserForm2.Show

End Sub

Здесь, с формы 4 осуществляется переход на форму 2, т.е. форма 2 становится видимой. Одновременно форма 4 выгружается из памяти (если этого не сделать, то, пока она будет находиться в памяти, VBA будет выдавать ошибку при повторном обращении к ней).