- •Введение
- •Работа с макросами в офисных приложениях
- •Создание и выполнение программ в редакторе vba
- •Проектирование форм в редакторе vba
- •Отладка программ в редакторе vba
- •Работа с управляющими конструкциями в vba
- •Обработка табличных Excel данных в vba
- •Создание пользовательских приложений
- •Строковые функции vba:
- •Функции vba для работы с датой/временем:
- •Функции vba для работы с массивами:
- •Функции преобразования типов данных:
- •Литература
- •Содержание
Создание пользовательских приложений
Цель работы: научиться создавать пользовательские приложения для обработки данных в Excel в среде VBA.
Задание1 Разработать приложение в среде VBA для создания и обработки таблицы в Excel по результатам сдачи студентами экзаменационной сессии.
Обеспечить возможность:
Ввода произвольного количества строк в таблицу, содержащих сведения об индексе группы, фамилии студента и оценках по каждому экзамену.
Вычисление стипендии студентам в зависимости от среднего балла за сессию по установленным нормативам и занесение данных расчета в созданную таблицу.
Сортировку данных в таблице по индексу группы, фамилии студента и размеру стипендии.
Формирование ведомости выдачи стипендии студентам на отдельном листе.
Рекомендуемая последовательность выполнения задания.
Создайте новую книгу Excel и сохраните ее с именем VBA_Tabl.xlsm.
Откройте редактор VBA и импортируйте сохраненные в личной папке формы frm_Fut, frm_Vvod, frm_Ras. frm_Sort и frm_L2 из предыдущей лабораторной работы.
Протестируйте импортированные формы и при необходимости отредактируйте код отдельных процедур.
Запустите форму frmFut и оформите заголовок (шапку) главной таблицы.
Запустите форму frmVvod и введите не менее десяти строк данных о результатах сдачи зимней сессии студентами своего курса.
Рассчитайте стипендию каждому студенту в форме frm_Ras. Используйте действующие на момент расчета нормативы начисления стипендии в зависимости от среднего балла.
Проверьте работу формы frm_Sort по сортировке данных в таблице по заданным в задании критериям.
Создайте на Лист2 ведомость выдачи стипендии студентам, используя форму frm_L2.
Вставьте новую форму в проект VBA_Tabll и оформите ее внешний вид, как показано на рис. 7.1.
Задайте имена объектам на форме и самой форме в соответствии с таблицей 7.1.
Рис. 7.1 Внешний вид формы Меню
Таблица 7.1 Имена элементов на форме Меню
Элемент |
Наименование |
Имя |
Форма |
Меню |
frm_Menu |
Кнопка |
Ввод |
cmd_Menu1 |
Кнопка |
Расчет |
cmd_Menu2 |
Кнопка |
Ведомость |
cmd_L2 |
Кнопка |
Сортировка |
cmd_Menu3 |
Кнопка |
Выход |
cmd_Exit |
В окне кода раздела формы frm_Menu введите код:
Private Sub cmd_Menu1_Click()
Load frm_Vvod
frm_Vvod.Show
End Sub
Private Sub cmd_Menu2_Click()
Load frm_Ras
frm_Ras.Show
End Sub
Private Sub cmd_Menu3_Click()
Load frm_L2
frm_L2.Show
End Sub
Private Sub cmd_Menu4_Click()
Load frm_Sort
frm_Sort.Show
End Sub
Private Sub cmd_Menu5_Click()
Unload Me
End
End Sub
Протестируйте работу разработанного приложения. Оцените удобства работы с таблицами с использованием главного меню приложения (форма frm_Menu) по сравнению с вызовом каждой формы вручную.
Создайте кнопку с названием Главное меню на Лист1 книги VBA_Tabl.xlsm для вызова формы frm_Menu созданного приложения после открытия книги.
Самостоятельно добавьте в код программы приложения процедуру вызова главного меню приложения при открытии книги VBA_Tabl.xlsm.
Сохраните книгу VBA_Tabl.xlsm и форму frm_Menu. Оформите отчет по лабораторной работе.
Задание для самостоятельной работы
Вариант 1
Создать таблицу, которая содержит сведения о сотрудниках института.
Структура таблицы:
фамилия;
пол;
название отдела;
дата рождения;
дата поступления на работу;
должность;
оклад.
Предусмотреть возможность добавления в таблицу произвольного количества строк.
Рассчитать:
стаж работы всех сотрудников;
средний стаж работы сотрудников заданного отдела;
количество сотрудников с окладом ниже заданного.
Создать на 2 листе книги таблицу, которая содержит список сотрудников пенсионного возраста (на сегодняшний день), указав стаж работы. Учесть разницу в пенсионном возрасте женщины и мужчины.
Сортировать данные в таблице по заданному столбцу.
Увеличить оклад на заданное число процентов лицам со стажем работы выше заданного.
Вариант 2
Создать таблицу, которая содержит сведения о заказе на ремонт оборудования.
Структура таблицы:
номер заказа;
дата оформления заказа;
фамилия заказчика;
наименование оборудования;
сложность ремонта (низкая, средняя, высокая);
стоимость;
дата окончания ремонта.
Предусмотреть возможность добавления в таблицу произвольного количества строк.
Определить:
суммарную стоимость всех заказов;
количество заказов на ремонт заданного вида сложности;
минимальную стоимость ремонта.
Создать на 2 листе книги таблицу, которая содержит сведения о продолжительности ремонта заказов, оформленных в течение заданного сезона (например, весной): номер заказа, фамилия заказчика, наименование оборудования, продолжительность заказа.
Сортировать данные в таблице по заданному столбцу.
Увеличить стоимость ремонта на Х% (значение Х задано) у оборудования с заданным наименованием.
Вариант 3
Создать таблицу, которая содержит сведения о междугородных разговорах.
Структура таблицы:
фамилия абонента;
номер телефона;
дата разговора;
код города;
длительность разговора в минутах;
стоимость 1 минуты.
Предусмотреть возможность добавления в таблицу произвольного количества строк.
Определить:
максимальную стоимость разговора;
суммарную стоимость всех разговоров;
общее количество разговоров в город с заданным кодом.
Создать на 2 листе книги таблицу, которая содержит сведения о стоимости разговоров, которые состоялись в интервале между двумя заданными датами.
Сортировать данные в таблице по заданному столбцу.
Увеличить стоимость всех разговоров на Х% (значение Х задано).
Удалить сведения о разговорах абонента с заданной фамилией.
Методические материалы
Краткое описание встроенных функций VBA, которые могут быть полезными при разработке пользовательских приложений.
