 
        
        Задания / 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> 
В 
	 Окно структуры проекта 
	 результате появится экран среды
программирования VBA (Рис. 2)
результате появится экран среды
программирования VBA (Рис. 2)
Рис. 2  Первоначальный
вид экрана редактора VBA
	 
	Окно свойств объекта Лист1 класса
	Worksheet 
- 
Выполнить команду Insert  UserForm. В результате на экране появится объект – форма с именем UserForm1 и панель Toolbox с элементами управления, которую можно передвинуть ( Рис. 3). 
  


 Рис.
3   Окно среды визуальной разработки
пользовательского интерфейса
                   Рис.
3   Окно среды визуальной разработки
пользовательского интерфейса
Проектирование программного обеспечения VBA включает выполнение трех пунктов:
- 
Планирование пользовательского интерфейса на объекте UserForm1. 
- 
Установка значений свойств объектов – самой формы, кнопок, надписей, полей и др. 
- 
Написание программного кода – кодов процедур расчёта и выхода. 
Чтобы понять систему программирования VBA, необходимо разобраться в понятии объект.
Перед Вами первый объект, с которым встречается пользователь среды программирования VBA, это форма UserForm1. Нажатием правой кнопкой мыши на форму открывается контекстное меню, в котором можно вывести на экран окно свойств формы и окно программного кода (Рис. 4):
 
Рис. 4
В окне свойств формы установите свойство Tехt равное строке “Снижение цены товара за месяц” без кавычек. В результате заголовок формы будет содержать введенный Вами Text.
- 
Планирование пользовательского интерфейса 
Для  создания проекта на форме нужно
разместить  объекты: кнопки, метки и др.
 Объекты Visual Basic
берём с панели Toolbox (опция меню Viw
или значок 
 ),
перетаскиваем на форму UserForm1 и
располагаем в соответствии с Рис. 5 и
спецификацией:
),
перетаскиваем на форму UserForm1 и
располагаем в соответствии с Рис. 5 и
спецификацией:
Р ис.
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
(Выполнить).
апустить
программу на выполнение нажатием
функциональной клавиши F5
или
щелкнуть по кнопке  Run
(Выполнить). 
- 
Тестирование программы 
В вести
данные в верхние три поля и щелкнуть по
кнопке Расчет
. Результат появится в трех нижних
текстовых полях (Рис. 6).
вести
данные в верхние три поля и щелкнуть по
кнопке Расчет
. Результат появится в трех нижних
текстовых полях (Рис. 6).
Рис. 6 Вид формы в режиме выполнения
- 
Эксплуатация программы 
Понаблюдать работу программы при различных исходных данных, в том числе при легко вычисляемых для проверки правильности работы.
		 
		
