Задания / VBA / VBA_2_Следование / Следование
.docРоссийский Университет Кооперации Кафедра информационных технологий.
Дисциплина «Информатика». Доцент Гудзенчук З.В.
Тема: Visual Basic for Application - VBA. Программирование по линейному алгоритму
Этап создания программного обеспечения с использованием объектно-ориентированного подхода включает четыре шага:
-
Анализ (пп. 1, 2, 3);
-
Проектирование ;
-
Эволюцию;
-
Модификацию
Современный программист, работающий в средах визуальной разработки программ, выполняет все четыре этапа.
Задание по разработке линейного алгоритма (алгоритм следования)
Написать блок-схемный алгоритм и код исполнения в среде VBA для решения следующей задачи (п.1).
-
Постановка задачи. Магазин в течение месяца снизил цену товара стоимостью S рублей дважды: сначала на n1 процентов и, затем на n2 процентов. Определить цену товара s1 после первого снижения и цену товара s2 после второго снижения. Определить N — на сколько процентов снизилась первоначальная цена товара S.
-
Разработка математической модели решения задачи (формализация задачи).
Модель решения задачи:
s1 = S – S*n1/100 — цена товара после первого снижения цен.
s2 = s1 –s1*n2/100 — цена товара поcле второго снижения цен
N = 100 – s2/S*100 — на столько процентов снизилась за месяц первоначальная цена товара
-
Разработка блок-схемного линейного алгоритма решения задачи
Блок-схема решения
Расчет
N
= 100
– s2*100/S
Рис. 1 Блок - схема алгоритма линейной структуры
-
Разработка проекта решения задачи
Выполним второй шаг на этапе создания программного обеспечения современного приложения. Для решения поставленной задачи достаточно написать две процедуры:
-
Расчет по алгоритму
-
Выход из программы
Выполнение этих процедур требуется привязать к нажатию кнопок соответственно:
-
Расчёт
-
Выход (см. Рис. 5)
Поскольку среда VBA ориентирована на программирование и обработку данных офисных приложений, для начала нужно открыть приложение, в котором будет решаться задача.
-
Открыть приложение Excel.
-
Для доступа в среду VBA необходимо выполнить команды меню Сервис:
-
Сервис Макрос Редактор Visual Basic
или
-
нажать комбинацию клавиш <Alt + F11>
В
Окно структуры проекта
Рис. 2 Первоначальный
вид экрана редактора VBA
Окно свойств объекта Лист1 класса
Worksheet
-
Выполнить команду Insert UserForm. В результате на экране появится объект – форма с именем UserForm1 и панель Toolbox с элементами управления, которую можно передвинуть ( Рис. 3).
Рис. 3 Окно среды визуальной разработки пользовательского интерфейса
Проектирование программного обеспечения VBA включает выполнение трех пунктов:
-
Планирование пользовательского интерфейса на объекте UserForm1.
-
Установка значений свойств объектов – самой формы, кнопок, надписей, полей и др.
-
Написание программного кода – кодов процедур расчёта и выхода.
Чтобы понять систему программирования VBA, необходимо разобраться в понятии объект.
Перед Вами первый объект, с которым встречается пользователь среды программирования VBA, это форма UserForm1. Нажатием правой кнопкой мыши на форму открывается контекстное меню, в котором можно вывести на экран окно свойств формы и окно программного кода (Рис. 4):
Рис. 4
В окне свойств формы установите свойство Tехt равное строке “Снижение цены товара за месяц” без кавычек. В результате заголовок формы будет содержать введенный Вами Text.
-
Планирование пользовательского интерфейса
Для создания проекта на форме нужно разместить объекты: кнопки, метки и др. Объекты Visual Basic берём с панели Toolbox (опция меню Viw или значок ), перетаскиваем на форму UserForm1 и располагаем в соответствии с Рис. 5 и спецификацией:
Р ис. 5 Пользовательский интерфейс проекта
Спецификация элементов формы пользовательского интерфейса:
-
6 элементов Label — метка - это надписи.
-
6 элементов TextBox — текстовое поле - это окошки ввода и вывода данных.
-
2 элемента CommandButton — кнопка - это кнопки Расчёт и Выход для запуска кодов соответствующих процедур.
-
1 элемент Image — рисунок - разделительная линия
-
-
Установить значения свойств объектов формы
Каждый объект имеет набор свойств. Важнейшим является свойство (Name) – имя. Значение этого свойства используется в программном коде для обращения к данному объекту. Внимательно следите за совпадением имени объекта в окне свойств и в коде программы!
Ниже перечислены свойства, которые нужно у объектов изменить. Если свойства нескольких объектов совпадают, то можно предварительно выделить эти объекты щелчком мыши с нажатой клавишей Shift, а затем задать значение свойства. Значение присвоится всей группе объектов.
-
Все 6 обектов Label имеют свойство Caption- надписи в соответствии с Рис. 5. Три нижние метки имеют также свойство ForeColor = Purple и свойство Font = Arial; 9pt (группа объектов).
-
Все 6 объктов TextBox имеют свойство Text ( устанавливается программно, просто посмотрите).
-
Две кнопки Button имеют свойство Caption Расчёт и Выход соответственно.
-
Объект — изображение Image имеет свойства BackColor = &H00C000C0& или любой другой цвет по вашему выбору и Height =3
-
Написать код программы
Программа имеет две процедуры, которые выполняются при событии Click (щелчок) по кнопкам CommandButtin1 (Расчёт) и CommandButton2 (Выход)
Открыть окно кода, дважды кликнув по кнопке Расчёт.
Появится заготовка процедуры события Click() для кнопки с именем CommandButton1.
Private Sub - начало процедуры
End Sub - конец процедуры
Между этими командами нужно написать программный код, выполняющий расчёт цен товара после скидок и процент скидки. Код программы пишется в соответствии с алгоритмом решения задачи - Рис. 1. и нижеприведённым текстом кодов процедур.
Аналогично создаётся код процедуры для кнопки Выход.
Пояснения в коде даются зелёным цветом и начинаются с апострофа'. Дайте чёткие и однозначно понятные пояснения к каждому оператору кода.
Тексты кодов процедур
Private Sub CommandButton1_Click() ‘Кнопка Расчет
Dim s, s1, s2 As Single ' Объявление переменных
Dim N, n1, n2 As Integer
s = Val(TextBox1.Text) 'Присвоение переменной s значения вводимого в поле
n1 = Val(TextBox2.Text)
n2 = Val(TextBox3.Text)
s1 = s - s * n1 / 100 'присвоение s1 значения вычисленного выражения
s2 = s1 - s1 * n2 / 100
N = 100 - s2 * 100 / s
TextBox4.Text = s1 'отображение значения s1 в поле
TextBox5.Text = s2
TextBox6.Text = Format(N, "Fixed")
End Sub
Private Sub CommandButton2_Click() 'Кнопка Выход
End
End Sub
Функция Val()
Val – функция преобразования строкового аргумента в числовой тип данных. Синтаксис Val(string). Эту функцию необходимо использовать, поскольку при вводе с клавиатуры числа в окошко объекта TextBox1, это число воспринимается языком Visual Basic как строковое значение, а нам нужно в дальнейшем использовать это значение в вычислениях как число.
В нашем случае в функции Val(TextBox1.Text) аргумент TextBox1.Text имеет тип string - строковый. Поэтому значение свойства Text объекта TextBox1 преобразуется функцией Val из строки в число и это значение числа присваивается переменной s. Далее переменная s используется в числовых вычислениях. Аналогично получаем значения переменных n1 и n2.
Проектирование закончено!
-
Запуск программы на исполнение.
Запустить программу на выполнение нажатием функциональной клавиши F5 или щелкнуть по кнопке Run (Выполнить).
-
Тестирование программы
В вести данные в верхние три поля и щелкнуть по кнопке Расчет . Результат появится в трех нижних текстовых полях (Рис. 6).
Рис. 6 Вид формы в режиме выполнения
-
Эксплуатация программы
Понаблюдать работу программы при различных исходных данных, в том числе при легко вычисляемых для проверки правильности работы.