Лабораторная работа № 1.
VBA. Линейные алгоритмы
Цель работы
Научиться использовать язык программирования Visual Basic for Applications (VBA) для разработки модулей в Excel на основе линейных алгоритмов.
Задачи лабораторной работы
После выполнения данной работы студент должен знать и уметь:
- знать все операторы, используемые в программах;
- уметь применять любые из изученных операторов для написания своих модулей;
- уметь объяснить написанную программу.
Общие теоретические сведения
VBA – это язык объектно-ориентированного программирования.
Основными парадигмами являются объект, свойство, метод, событие, класс и семейство объектов.
Объект – это инкапсуляция данных вместе с кодом, предназначенным для их обработки.
Семейство – объект, содержащий несколько других объектов того же типа:
Worksheets (“Лист 1”) – рабочий лист с имени Лист1,
Worksheets (1) – первый лист рабочей книги.
Классы – это проект, на основе которого будет создан объект, т.е. класс определяет имя объекта, его свойства и действия, над ним выполняемые. А каждый объект, свою очередь, является экземпляром класса.
Методы – это действия, выполняемые над объектом.
Объект.метод – синтаксис метода
Пример.
Application.Quit – закрыть объект Application.
Worksheets (“Лист1”).Chartobjects.Delete – удалит все диаграммы с листа “Лист1”.
Свойства – это атрибут объекта, определяющий его характеристики: размер, цвет, положение на экране или состояние (доступность, видимость).
Для изменения характеристик меняют его свойства:
Объект.Свойство=Значение свойства
Пример.
Worksheets.Visible = False
Есть свойства, возвращающие объект:
ActiveCell возвращает активную ячейку активного листа активной рабочей книги.
ActiveWindow – активное окно.
Свойства ActiveCell, ActiveWindow. ActiveCell и Application. ActiveWindow. ActiveCell возвращают одну и ту же активную ячейку.
События – это действия, распознаваемые объектом.
Суть программирования на VBA и заключается в том, чтобы на событие получить отклик.
Состав задания
Пример 1. Написать программу, которая вычисляет периметр треугольника.
Запись программы в виде блок-схемы (рис. 1)
Рисунок 1. Блок-схема решения задачи
1. Запустите Microsoft Excel.
2. Введите значение длины 1-й стороны треугольника
3. Запустите редактор VBA.
Выполните команду Разработчик - Код - Visual Basic. Вы попадете в интегрируемую среду разработки приложений IDE редактора Visual Basic
4. Выполните команду Insert - Module, и наберите код:
5. Визуальное представление формы для ввода данных (рис. 2) и результата (рис. 3):
Рисунок 2. Ввод исходных данных в процессе выполнения программы
Рисунок 3. Вывод результата в процессе выполнения программы
5. Сохраните ваш файл как книгу MS Excel с поддержкой макросов.
Пример 2. Вычислите значение квадратного корня из суммы трех переменных.
Технологию запуска редактора VBA и вставки модуля см. в Примере 1.
Запись программы в виде блок-схемы (рис. 4) и визуальное представление формы для ввода данных (рис. 5) и результата (рис. 6):
Рисунок 4. Блок-схема решения задачи
а)
б)
в)
Рисунок 5. Ввод исходных данных в процессе выполнения программы
Рисунок 6. Вывод результата в процессе выполнения программы
Программный код
6. Сохраните ваш файл как книгу MS Excel с поддержкой макросов.
Пример 3. Вычислить Y, задав значения переменным:
1. На новом рабочем листе книги MS Excel оформите условие задачи и исходные данные, как показано на рис 7.
Рисунок 7. Визуальное представление решения задачи
2. Запустите редактор VBA. В окне проекта дважды щелкните мышью на имени текущего рабочего листа.
3. Введите программный код для Main.
Запустите программу на выполнение.
4. На листе MS Excel внедрите командную кнопку «Решение» (см. рис. 7):
- Разработчик – Элементы управления – Вставить – Элементы ActiveX.
- Включите режим конструктора и установите следующие свойства кнопки:
o Caption – Решение
o Name – CommandButton1.
5. Двойной щелчок на кнопке откроет редактор VBA и добавленную конструкцию обработчика события Click. Введите программный код для кнопки:
6. В листе MS Excel отключите режим конструктора и проверьте работу кнопки
Пример 4. На новом рабочем листе вычислить f, задав значения переменным:
Визуальное представление решения задачи представлено на рис. 8.
Рисунок 8. Визуальное представление решения задачи
Программный код
Варианты заданий
Задание 1. Составить блок-схему и написать программный код согласно условию задачи.
1. Вычислите значение суммы обратных величин трех переменных.
2. Найдите сумму первой и второй переменных и разность первой и третьей переменной.
3. Найти объем цилиндра.
4. Вычислить площадь прямоугольника.
5. Вычислите значение куба, квадрата и обратной величины переменных.
6. Найдите площадь круга по формуле .
7. Найти расстояние от точки М до начала координат.
8. Найти сторону квадрата, площадь которого равна площади прямоугольника.
9. Найти площадь ромба.
10. Определите произведение трех переменных.
11. Найти гипотенузу треугольника.
12. Найти остаток от деления двух действительных чисел.
13. Найти сумму квадратов трех чисел.
14. Найти среднее арифметическое трех введенных чисел.
Задание 2. Вычислить для своего варианта Y, задав значения переменным:
Задание 3. Вычислить для своего варианта f, задав значения переменным
Технология выполнения работы
1. Разработать алгоритм для написания программы в виде блок-схемы.
2. Написать программу.
3. Протестировать ее с разными исходными данными.
Содержание отчета
1. Цель работы, условие задачи
2. Алгоритм в виде блок-схемы.
3. Исходный текст программы.
4. Вводимые данные и результаты.
5. В программе значение одной из переменных должно быть записано в ячейке электронной таблицы.
6. Значение другой переменной задается в программе или вводится с помощью окна-диалога.
7. Все типы переменных и констант, которые используются в программе, должны быть объявлены и отражать смысловое значение переменных или констант.
8. Результат работы программы должен иметь наглядный вид.
9. Для запуска макроса создать кнопку с соответствующей надписью.
Вопросы для защиты работы
1. Какие встроенные типы данных вы знаете?
2. Как описываются переменные?
3. Как объявляют константы?
4. Какие операции языка VBA вы знаете?
5. Какие операторы языка VBA вы знаете?
6. Перечислите операторы управления
7. Укажите операторы, используемые для ввода данных с рабочего листа.
8. Как заменить Arcsin в VBA?
9. Укажите формулу, которая заменит Arcctg в VBA.