Создание пользовательской формы
Шаг 1
Выберите команду Вставить UserForm (Insert UserForm). В редакторе Visual Basic появится:
Окно с пользовательской формой
Панель инструментов Панель элементов (Toolbox).
Должно получиться вот так:
Шаг 2
Используя
диалоговое окно Свойства (Properties),
отображаемое нажатием кнопки
и
Панель элементов (Toolbox), создайте из
пользовательской формы диалоговое
окно, показанное на рис 4.2.
Это окно состоит из трех кнопок и одного поля. Свойство Caption пользовательской формы определите равным Песнь о воробушке и бабочке, а кнопок - равными Первый акт, Второй акт и Третий акт.
Шаг 3
Для того чтобы написать процедуру обработки события нажатия кнопки Первый акт, дважды щелкните ее. Активизируется модуль UserForm1, в которой введите процедуру:
Private Sub CommandButton1_Click()
TextBox1.Text="Воробышек за бабочкой прыг-прыг-прыг"
End Sub
Для обработки событий нажатий кнопок Второй и Третий акт в модуле UserForm1 введите следующие две процедуры:
Private Sub CommandButton2_Click()
TextBox1.Text="Воробышек за бабочкой скок-скок-скок"
EndSub
Private Sub CommandButton3_Click()
TextBox1.Text="Воробышек бабочку ням-ням-ням"
End Sub
Шаг 4
Процесс
создания диалогового окна и процедур,
связанных с ним, завершен. Для того чтобы
проверить, как работает созданная
программа, нажмите кнопку Запуск
подпрограммы/User form (Run)
.
На экране на фоне рабочего листа
отобразится диалоговое окно Песнь о
воробушке и бабочке. В поле выведется
сообщение Воробышек за бабочкой
скок-скок-скок, при нажатой клавише «Акт
второй»
Рис.4.3.
Для закрытия диалогового окна «Песнь о воробушке и бабочке» нажмите системную кнопку, расположенную в верхней правой части строки заголовка диалогового окна.
Задание для индивидуального выполнения по теме «Работа с объектами в Microsoft Excel»
Задание И 4.1 .Работа с объектами
Написать код, который подготовит личную карточку человека, содержащую следующие сведения: Фамилия, Имя, Отчество, Дата рождения, Домашний адрес, Телефон.
Указание
Для заголовка личной карточки используйте: шрифт – Times New Roman, размер шрифта – 14 пт, начертание шрифта – полужирное (Bold), цвет шрифта – красный (ColorIndex). Для названий полей личной карточки используйте: шрифт – Arial Cyr, размер шрифта – 10 пт, начертание шрифта – курсив (Italic), цвет шрифта – синий (ColorIndex). Установите необходимую ширину колонки и уберите лишние листы.
Используйте нижеприведенный код за основу всей программы.
Sub People()
Worksheets(1).Name = "Человек" 'Первый лист изменяет название
Worksheets(1).Select 'Выделение первого листа
Cells(1, 1).Select 'Выделение первой ячейки
ActiveCell.Font.Size = 14 'Размер шрифта активной ячейки
ActiveCell.Font.ColorIndex = 3 'Цвет красный
ActiveCell.Value = "Личная карточка" 'Запись "Личная карточка"
Columns("a:a").ColumnWidth = 40 'Ширина первого столбца 40
End Sub
Задание И 4.2.Работа с формами
Создать приложение, которое позволит создать форму для работы с базой данных студентов. Задание выполнять на основе результата Задания 1. Пользовательская форма должна появляться на рабочем листе по нажатию кнопки «Карточка»
Создайте форму, изображенную на рисунке
Нажатие кнопки «Занести в Базу Данных» должно привести к сохранению всех данных на рабочем листе.
Указание
При нажатии на кнопку «Занести в Базу Данных» важно чтобы каждая новая запись не затирала предыдущую, а записывалась на строку ниже..
ПРИМЕР РАБОТЫ С ФОРМАМИ
Создать приложение, которое позволит выбрать несколько чисел, выводимых в списке.
Создайте форму изображенную на рисунке
В группе Операция следует установить один из переключателей: Сумма, Произведение или Среднее, чтобы указать, какая операция будет выполняться над выбранными числами. Нажатие кнопки Вычислить должно привести к выполнению операции и выводу результата в поле Результат.
На листе модуля введите следующую программу.
Private Sub CommandButton1_Click()
Dim i As Integer
Dim n As Integer
Dim Сумма As Double
Dim Произведение As Double
Dim Среднее As Double
Dim Результат As Double
If OptionButton1.Value = True Then
Сумма = 0
With ListBox1
For i = 0 To .ListCount - 1
If .Selected(i) = True Then
Сумма = Сумма + .List(i)
End If
Next i
End With
Результат = Сумма
End If
If OptionButton2.Value = True Then
Произведение = 1
With ListBox1
For i = 0 To .ListCount - 1
If .Selected(i) = True Then
Произведение = Произведение * .List(i)
End If
Next i
End With
Результат = Произведение
End If
If OptionButton3.Value = True Then
Среднее = 0
n = 0
With ListBox1
For i = 0 To .ListCount - 1
If .Selected(i) = True Then
n = n + 1
Среднее = Среднее + .List(i)
End If
Next i
End With
Результат = Среднее / n
End If
TextBox1.Text = CStr(Format(Результат, "Fixed"))
End Sub
Private Sub CommandButton2_Click()
UserForm1.Hide
End Sub
Private Sub Frame1_Click()
End Sub
Private Sub ListBox1_Click()
End Sub
Private Sub UserForm_Initialize()
With ListBox1
.List = Array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)
.ListIndex = 0
.MultiSelect = fmMultiSelectMulti
End With
TextBox1.Enabled = False
End Sub
Private Sub UserForm_Click()
End Sub
Контрольные вопросы
1. Определите понятие объекта для VBA.
2. Объясните различие между понятиями свойства и методы объекта.
3. Какие из свойств объектов можно не указывать?
4. Опишите параметры, которые могут указываться для метода сохранения файла.
5. Опишите инструкцию With.
6. Опишите отличия методов Save и SaveAs.
7. Можно ли записать макрос, с помощью которого можно выполнить сохранение рабочей книги, закрытие рабочей книги и закрытие приложения.
8. Раскройте понятие «форма»
9. Какова структура процедуры в VBA?
Библиографический список
В.Е. Торчинский, В.Д. Тутарова, А.Н. Калитаев, Е.А. Ильина Практикум по программированию на языке С++: учебное пособие. – Магнитогорск: МГТУ, 2009 –108 с.
О.С. Логунова, Е.А. Ильина, А.А. Стороженко, Ю.Б. Кухта, М.Н. Егорова, С.М. Логунов Практикум по информатике для программистов: учебное пособие. – Магнитогорск: МГТУ, 2007 –301с.
Н.Б. Культин Visual Basic. Освой на примерах. – СПб.: БХВ-Петербург, 2004.–288с.
И.Н Серебренникова, Г.М. Коринченко, Т.Н. Носова, Л.Л. Демиденко Решение задач в среде VBA: учебное пособие. – Магнитогорск: МГТУ, 2007 –162с.
Электронное пособие по формам в VBA.
