Описание лабораторной работы № 15

advertisement
ЛАБОРАТОРНАЯ РАБОТА № 15.
РАЗРАБОТКА ПОЛЬЗОВАТЕЛЬСКОЙ ФОРМЫ
1. Задание
Разработать функцию, выполняющую указанное задание. Функция должна
получать диапазон для обработки, а также, при необходимости, заданное число или
заданный интервал. Для задания параметров функции разработать пользовательскую
форму, которая должна вызываться с помощью пользовательского пункта контекстного
меню. Результат функции выводить с помощью стандартной функции MsgBox.
1. Найти количество элементов, больших заданного числа.
2. Найти количество элементов, обратная величина которых меньше заданного числа.
3. Найти номер строки, в которой находится минимальный элемент.
4. Найти сумму квадратов элементов, не превышающих заданного числа.
5. Найти сумму элементов, лежащих в заданном интервале.
6. Найти среднее арифметическое отрицательных элементов.
7. Найти произведение ненулевых элементов.
8. Найти количество нулевых элементов.
9. Найти количество элементов, кратных заданному числу.
10. Найти сумму элементов, кратных заданному числу.
11. Найти сумму обратных величин значений элементов диапазона.
12. Найти значение первого элемента, принадлежащее заданному интервалу.
13. Найти количество отрицательных элементов.
14. Найти количество положительных элементов.
15. Найти среднее арифметическое элементов, кратных заданному числу.
16. Найти сумму элементов, абсолютное значение которых находится в заданном
интервале.
17. Найти произведение элементов, находящихся в заданном интервале.
18. Найти сумму отрицательных элементов.
19. Найти значение минимального элемента.
20. Найти сумму элементов с нечётными номерами столбцов.
21. Найти значение минимального по абсолютной величине элемента.
22. Найти сумму элементов, кратных заданному числу.
23. Найти сумму элементов, абсолютная величина которых меньше заданного числа.
24. Найти количество элементов, абсолютная величина которых больше заданного числа.
25. количество элементов, лежащих в заданном интервале.
26. Найти количество отрицательных элементов.
27. Найти значение максимального элемента.
28. Найти сумму элементов с чётными номерами.
29. Найти значение минимального по абсолютной величине элемента.
30. Найти сумму элементов, квадрат величины которых больше заданного числа.
2. Разработка функции
1. Запустите приложение Microsoft Excel и сохраните файл Книга1 в своей рабочей папке
под именем Вторая форма.xlsm (не забудьте изменить расширение файла).
2. Откройте редактор VBE и вставьте пользовательскую форму с помощью команды
редактора Insert  UserForm.
3. Измените имя и заголовок формы.
4. Добавьте на форму необходимые управляющие элементы с помощью инструментов
окна Toolbox. Форма должна содержать поле выбора диапазона, кнопки «Выполнить»
и «Закрыть» и, при необходимости, текстовые поля для задания дополнительных значений.
5. Напишите инструкцию Option Explicit в модуле формы, для того чтобы избежать
использования необъявленных переменных.
6. Кнопка «Выполнить» должна быть доступна, только если заполнены все поля.
Напишите необходимые обработчики событий для поля выбора диапазона и
текстовых полей.
7. Для того чтобы при запуске формы в поле выбора диапазона автоматически
вставлялась ссылка на текущий выделенный диапазон, вставьте в модуль
соответствующую процедуру обработки события.
8. Разработайте процедуры обработки события «щелчок левой кнопкой мыши по
кнопке» для обеих кнопок. Процедура для кнопки «Выполнить» должна осуществлять
проверку корректности исходных данных, вызов функции, указанной в задании, и
вывод результата с помощью стандартной функции MsgBox.
9. Поскольку из контекстного меню можно вызывать только процедуру, добавьте в
рабочую книгу новый модуль и напишите в нём процедуру с именем UserFormLoad,
которая будет отображать созданную форму с помощью метода Show.
10. Для того чтобы при открытии рабочей книги добавлялся пользовательский пункт
контекстного меню, в модуль рабочей книги добавьте процедуру обработки события
«открытие рабочей книги», которая будет добавлять новый пункт с именем «Моя
форма» в контекстное меню ячейки рабочего листа. При выборе нового пункта
контекстного меню будет выполняться процедура UserFormLoad, созданная на
предыдущем шаге. Процедура обработки события должна выглядеть следующим
образом:
Private Sub Workbook_Open()
Dim bar As CommandBar
Dim newButton As CommandBarButton
Set bar = Application.CommandBars("Cell")
Set newButton = bar.Controls.Add(Type:=msoControlButton, temporary:=True)
With newButton
.Caption = "Моя форма"
.OnAction = "UserFormLoad"
.Style = msoButtonCaption
End With
End Sub
11. Для удаления созданного пункта контекстного меню при закрытии рабочей книги
вставьте в модуль рабочей книги процедуру обработки события «закрытие рабочей
книги», которая должна выглядеть следующим образом:
Private Sub Workbook_BeforeClose(Cancel As Boolean)
On Error Resume Next
Application.CommandBars("Cell").Controls("Моя форма").Delete
End Sub
12. Поскольку новый пункт контекстного меню появляется только при открытии рабочей
книги, сохраните вашу рабочую книгу, закройте её и снова откройте. Теперь вы
должны увидеть в контекстном меню ячейки рабочего листа новый пункт. Этот пункт
меню будет доступен во всех открытых рабочих книгах, пока вы не закроете рабочую
книгу, создающую и уничтожающую ваш пункт меню.
13. Проверьте работу формы.
14. Если всё работает корректно, покажите результаты работы преподавателю.
15. Закройте приложение Microsoft Excel.
3. Вопросы для контроля
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
Что такое пользовательская форма?
Зачем нужны пользовательские формы?
Какие управляющие элементы вы знаете?
Как вставить пользовательскую форму?
Как изменить заголовок пользовательской формы?
Как добавить управляющие элементы на форму?
Как изменить свойства управляющих элементов?
Что такое процедура обработки события?
Как добавить процедуру обработки события рабочей книги?
Как добавить пользовательский пункт контекстного меню?
Download