You are on page 1of 29

Міністерство освіти і науки України

Національний університет «Полтавська політехніка


імені Юрія Кондратюка»
Кафедра менеджменту і логістики

Курсова робота
з дисципліни «Програмні оболонки і пакети»
на тему :розроблення програмної оболонки засобами
Microsoft Excel VBA для розв’язку економічної задачі

Роботу виконав студент 2 курсу


Денної форми навчання
Групи 201-ЕК
Бут Р.А.
Науковий керівник:
Доцент
Харченко Ю.А.

Полтава 2021
Бланк завдання

2
Зміст
Бланк завдання………………………………………………..2
Вступ……………………………………………………………4
Розділ 1(теоретична частина)………………………………..5
Розділ 2(практична частина)………………………………..12
Загальні висновки…………………………………………….27
Список використаних джерел……………………………….29

3
Вступ
Незважаючи на досить широкі можливості системи MS Excel з
створення нескладних баз даних у ряді випадків виникає ситуація, коли
користувачеві не вистачає якоїсь функції для повного задоволення його
потреб, а використати більш потужні СУБД немає необхідності. У таких
випадках може допомогти розширення можливостей системи MS Excel
шляхом написання власних функцій користувача, які дозволяють виконувати
нестандартні, але необхідні користувачеві дії з оброблення даних.

Такі засоби надає вмонтований у систему MS Excel інтерпретатор мови


високого рівня Visual Basic for Application (скорочено VBA). Visual Basic for
Applications – це об’єктно-орієнтована мова програмування високого рівня,
вбудована в усі програми MS Office. Включення в зазначений пакет сучасної
повнофункціональної мови програмування, інструментів для написання
програмних кодів, їх редагування і відлагодження, а також великих бібліотек
стандартних процедур дозволяє створювати програмні продукти, здатні з
достатньою повнотою автоматизувати вирішення конкретних завдань
користувача.Існує ряд причин, які обумовили таку популярність VBA,
зокрема:

 VBA є єдиним середовищем розробки додатків у всіх програмах


Microsoft Office. Подібний вибір обумовлено винятковими властивостями
VBA, що бере свій початок ще в 1960-х роках і безупинно розвивається з тих
пір. Однією з таких властивостей є унікальне поєднання простоти базових
конструкцій і широких можливостей з реалізування алгоритмів оброблення
даних довільного ступеня складності. У цьому сенсі VBA поступається, хіба
що, Фортрану;

 за допомогою VBA можна записувати послідовності повторюваних


команд, характерних для довільного додатка, і призначати правила (умови)
відповідно до яких ці послідовності (процедури VBA) будуть викликатися в
додатку. Наприклад, після натискання деякої кнопки робочий аркуш MS
Excel може бути відформатований з урахуванням вимог користувача,
записаних на VBA і збережених у робочій книзі або шаблоні;

 використавши засоби VBA можна забезпечити нестандартний діалог


з користувачем, створюючи діалогові форми і обробляти реакцію
користувача на подію в додатку.

4
Розділ 1(теоретична частина)
Мовні засоби управління пакетом прикладних програм

3.1 Загальна характеристика пакетів прикладних програм (ППП)

ППП – це програмний виріб, який є складовою ПЗ. Це поняття


використовується для визначення відособлених елементів прикладного ПЗ,
які поєднані з метою більш ефективного використання ресурсів.

За призначенням ППП – це комплекс взаємопов’язаних програм, що


має спеціальну побудову, яка забезпечує значне підвищення продуктивності
користувачів, що мають певну кваліфікацію, під час розв’язування певного
класу задач.

За змістом ППП – це комплекс програм разом з документацією на його


встановлення та експлуатацію, що має засоби настроювання і призначений
для реалізації на ЕОМ певної кількості алгоритмів розв’язування певної
задачі або класу задач і зорієнтований на певну категорію користувачів.

Загальна характеристика ППП:

- складається з певної кількості спільних програмних компонентів;

- призначений для розв’язування окремої задачі чи класу задач;

- забезпечує реалізацію вимог широкого кола користувачів до


розв’язуваної задачі;

- документація, способи та засоби застосування пакета зорієнтовані на


користувача, що має належний рівень кваліфікації в певній галузі діяльності.

Головною властивістю ППП є гнучкість, тобто можливість настроювання


на певні особливості задачі, що розв’язується та умови використання. Засоби
настроювання дають змогу використовувати розроблений ППП для
розв’язування задачі або класу задач на різних об’єктах з урахуванням їхньої
специфіки.

Ступінь гнучкості ППП визначається простотою та діапазоном


настроювання пакета, а також якістю управління настроюванням і якістю
управління процесом розв’язування задачі з використанням пакета. Простота
5
та діапазон настроювання пов’язані з рівнем вимог до спеціальних знань
користувача щодо застосування ЕОМ, принципів алгоритмізації та
програмування під час застосування ППП. Також важливо наявність
можливості розв’язування задачі кількома методами чи способами,
поданням вхідних даних та вихідної інформації у вигляді, що відповідає
умовам користувача та застосуванням різних периферійних пристроїв.

Рівень автоматизації програмування, що забезпечується пакетом,


визначається ступенем участі користувача в організації процесів підготовки та
виконання програм пакета. Отже ППП – це особлива сукупність програм, яка
здатна автоматично перебудовуватися на розв’язування нової задачі певного
класу, яка максимально пристосована до розв’язання визначеного класу
задач і можливостям користувача.

Ступінь гнучкості пакета залежить від предметної галузі – множини


задач, що розв’язуються з використанням пакета і мають сенс у тій галузі
застосування, на яку його зорієнтовано.

Будь-який процес, що реалізується ППП, можна віднести до двох груп:

1) розв’язування функціональних задач з метою отримання повної


інформації чи розширення можливостей операційної системи;

2) розв’язування допоміжних або сервісних задач, які призначені для


полегшення використання пакета, їх зміст мало залежить від специфіки задач
користувача.

Поняття предметної галузі ППП тісно пов’язане з першою групою, тому


що кожний пакет орієнтований на певну галузь людської діяльності.

Змістовний опис предметної галузі, зрозумілий користувачеві


недостатній для розробника пакета, для нього важливі не тільки перелік
даних та їх характеристики, але й зв’язки між ними.

Тобто розробник ППП має побудувати певну модель предметної галузі,


в якій дані (змінні), що мають змістовну і зрозумілу користувачеві предметну
назву позначаються ідентифікаторами, під якими вони визначені в моделі
предметної галузі. Сукупність властивостей (множина припустимих значень
та набір припустимих операцій з ними) визначають тип даних.

6
Під час розв’язування соціально-економічних задач існують об’єднання
даних одного типу в масиви. Сукупність даних у моделі предметної галузі
складає інформаційну базу пакета.

За функціональним призначенням ППП – це функціонально


завершений комплекс програм, який призначений для розв’язування
певного логічно цілісного класу задач.

3.2 Класифікація ППП

ППП можна класифікувати за галузями застосування та класами


розв’язуваних задач, або за орієнтацією на певний метод чи процедуру
оброблення.

ППП, що розширюють можливості ОС, призначені забезпечувати


нестандартні режими експлуатації обчислювальних засобів чи
функціонування спеціальних технічних засобів. Наприклад, забезпечення
роботи багатокористувацьких систем, робота з віддаленими абонентами,
функціонування в реальному масштабі часу, робота в інтерактивному
режимі, організація спеціального доступу до даних.

ППП спеціального застосування використовуються для розв’язування


прикладних задач і реалізації математичних методів, які є спільними для
багатьох галузей застосування ЕОМ. Наприклад, статистичні методи
оброблення та аналізу даних, методи математичного програмування,
економетричні моделі, методи імітаційного моделювання і прогнозування,
текстові редактори, табличні процесори.

ППП для розв’язування інженерних і науково-технічних задач містять


набір підпрограм, на базі яких користувач може побудувати програми
розв’язування власних задач. Наприклад, процедурно-орієнтовані системи
програмування.

ППП для розв’язування економічних задач складаються з програм, які


враховують особливості та складності структури соціально-економічної
інформації, різницю в кваліфікації користувачів (відповідний інтерфейс),

7
різноманітність задач і способів застосування результатів, використовують
генератори звітів.

Інтегровані ППП складаються з функціонально відмінних один від


одного компонентів, які здатні взаємодіяти між собою передаванням
інформації та поєднані єдиним уніфікованим інтерфейсом користувача.
Основними компонентами є графічний редактор, СУБД, текстовий редактор,
табличний процесор.

Також ППП можна класифікувати за іншою ознакою.

Методо-орієнтовані ППП призначені для розв’язування задачі або


групи задач, подібних за своєю постановкою, одним із кількох методів, які
знаходяться в пакеті. Метод, який має бути використаний, задається
користувачем або визначається автоматично за результатами аналізу вхідних
даних.

Проблемно-орієнтовані ППП використовуються для розв’язання


окремих задач, що суттєво відрізняються як за постановкою, так і за
методами розв’язування. Проблемна орієнтація може бути подана у вигляді
однієї загальної задачі, вирішення якої містить проміжні етапи розв’язування
певних окремих задач.

Проблемно-орієнтовані ППП для промислової сфери повинні скласти


технологічну основу не тільки для планування виробництва
вдосконаленими методиками, контролю за виконанням плану робіт, але і
забезпечувати руху фінансових і трудових ресурсів, здійснювати ряд
функцій, пов'язаних з контролем сервісного обслуговування, розподілом
готової продукції і маркетингом.

Проблемно-орієнтовані ППП непромислової сфери  призначені для


автоматизації діяльності фірм, які пов'язані з матеріальним виробництвом
(банки, біржі, торгівля тощо) Вимоги до ППП цього класу передбачають
створення інтегрованих багаторівневих систем.

ППП  окремих предметних областей є одним з основних напрямків


розвитку індустрії створення програмних продуктів. Протягом більше
десяти років розробляються ППП для різних предметних областей:
бухгалтерського обліку, фінансового менеджменту, правових систем і т.д.

ППП  фінансового менеджменту  (ППП ФМ) з'явилися в зв'язку з


необхідністю фінансового планування і аналізу діяльності фірм.

8
Сьогоднішній російський ринок ППП МФ представлений в основному
двома

класами програм: для фінансового аналізу підприємства та для оцінки


ефективності інвестицій.

ППП правових довідкових систем являють собою ефективний інструмент


роботи з величезним обсягом законодавчої інформації, що надходить
безперервним потоком.

Технологічно-орієнтовані ППП реалізують окремі процедури технології


оброблення даних, що є типовими і часто повторюються.

На відміну від традиційної прикладної програми кожний ППП


характеризується певною множиною можливостей, що відображає його
різноманітність. Це може бути кількість методів для методо-орієнтованих
ППП, кількість задач заданого класу для проблемно-орієнтованих ППП або
кількість типових процедур для технологічно-орієнтованих ППП.

3.3 Редактор “Visual Basic”

Впровадження програмних засобів для оброблення економічної


інформації сприяє підвищенню продуктивності праці й оперативному
прийняттю управлінських рішень. Створені системи формують технічну базу
інформаційних технологій, поліпшують ефективність використання
інформації для прийняття рішень, забезпечують користувачів
інформаційними та технічними ресурсами, а також розв’язують проблеми
ефективності впровадження й експлуатації.

Основні додатки пакета програм “Microsoft Office 2003” мають значні


можливості макропрограмування, що об’єднують найбільш сучасні засоби. У
табличному процесорі (ТП) “MS Excel 2003” вбудована макромова
програмування VBA, що використовується для створення, редагування й
виконання програмного коду, який дає можливість автоматизувати роботу
ТП. Це дає змогу зменшити час виконання і кількість ручних операцій
одночасно з високою точністю всіх дій.

Мова VBA має такі переваги:

а) логічний контроль  можливість виконання різних дій залежно від


9
значень даних у клітинці, результату обчислень або від вибору користувача;

б) повторне виконання  дії макросу можуть повторюватися багато


разів із великою швидкістю при певній умові чи певну кількість разів;

в) взаємодія з користувачем  мова VBA містить функції для


відображення повідомлень і запитань, а також для введення інформації;

г) керування Excel  потужна об’єктна модель дозволяє отримати


доступ практично до всіх компонентів Excel, тобто програма виконує всі дії,
що й Excel;

д) засоби редагування  крім мови програмування, пакет програм


Office 2000 має єдиний редактор “Visual Basic” для написання і налагодження
програм;

е) об’єднання з базами даних  вбудована підтримка системи “Open


Database Connectivity” (ODBC) дозволяє працювати з даними “Microsoft
Access”.

Редактор “Visual Basic” із вбудованими засобами редагування й


управління проектами значно підвищує ефективність розроблення програм і
надає потужну платформу для редагування та налагодження програм.
Можливість створення форм (програмних оболонок) включає не тільки
відповідний набір інструментів для створення діалогових вікон, але і
повноцінну модель програмованих подій.

Запуск редактора “Visual Basic” виконується за допомогою команди


“Сервис\Макрос\Редактор Visual Basic” або “Alt+F11”.

Призначення вхідної мови та її орієнтація на певну категорію користувачів


вимагає приділяти увагу її класификації за такими ознаками: за рівнем
управління пакетом; за засобами реалізації.

Звернення до пакета з програмою на вхідній мові передбачає введення цієї


програми до середовища виконання. І постає питання про можливі режими
взаємодії користувача з ППП.

Вибір способу застосування ППП залежить від багатьох факторів, з яких


найбільш впливовими є можливості ОС і обраної мови програмування; обсяг
даних, що оброблятиметься; характер задачі, що розв’язується; тривалість
розв’язання задачі; частота використання пакета; особливості кваліфікації
користувачів і вимоги до оперативності отримання результатів розрахунків.

10
Основними режимами є пакетний та діалоговий, що має два варіанти
реалізації: пусковий та режим супроводу. Зауважимо, що використання
діалогового режиму у будь-якому варіанті передбачає застосування
спеціальної програми — діалогової системи, що організує процес діалогу.

Ця система може бути самостійною програмою або входити до складу


пакета. Ведення діалогу потребує застосування спеціальної мови, яка
значною мірою визначає складність і структуру діалогової системи.

Останнім часом у конструюванні діалогових систем інтенсивно


використовуються такі форми ведення діалогу: використання природної
мови, формалізованої мови, мови табличного типу, командного типу та мови
типу меню.

3.4 Настільні видавничі системи

Даний клас програм включає програми, що забезпечують інформаційну


технологію комп'ютерної видавничої діяльності:

1. форматування і редагування текстів;

2. автоматичну розбивку тексту на сторінки;

3. створення заголовків;

4. комп'ютерну верстку друкованої сторінки;

5. монтування графіки;

6. підготовку ілюстрацій і т. П.

ППП Adobe Page Maker 6.0 забезпечує підготовку багатосторінкових


кольорових публікацій, гнучкий дизайн сторінок, високоякісний друк.
Розширено можливості по верстці: необмежене число сторінок-шаблонів,
які можуть використовуватися в одній публікації; застосування різних
ефектів до кольорових зображень; настройка різкості і регулювання квітів в
імпортованих файлах; можливо закріплення розташування об'єктів на
сторінці, автоматичне вирівнювання об'єктів.

11
Розділ 2(практична частина)
4.1 Побудова БД та розроблення форми користувача

Виконання практичного завдання розпочинається з побудови БД обліку


на першому аркуші. Вона складається з таблиці обліку (30 записів) та двох
довідників (рис. 1 і 2).

Значення полів “Фірма” та “Менеджер” вводяться за допомогою списків, що


випадають. Значення поля “Ціна продажу” залежить від “Гуртової ціни”, а

значення “Вартість транспортування” залежить від “Відстані”.

Ціна продажу, грн. = ВПР(C4;$K$3:$M$7;3;0)


Вартість транспортування ,грн. = ВПР(B4;$O$2:$Q$7;3;0)*5

Скидка , грн. = ЕСЛИ(D4>5;F4*20%;0)

Сума до сплати = Вартість, грн. - Скидка ,грн. .+ Вартість транспортування,


грн.

Рис.1.Таблиця “Облік продажів”

12
Рис. 2. Довідники менеджерів і фірм

Після створення БД необхідно розробити форму користувача, надати


властивості та визначити ідентифікатори (змінні) для об’єктів управління.
Для того, щоб форма стала корисною, слід написати деякий код. Спочатку
необхідно створити процедуру початкового відображення форми, а потім
додаткові процедури, котрі реагують на події, що виникають під час
відображення форми: клацання „мишкою” по кнопках елементів управління,
введення даних у відповідні елементи управління тощо.

Розроблена форма користувача згідно завдання представлена на рис. 3.

13
Рис. 3. Форма користувача (програмна оболонка)

4.2 Таблиця ідентифікаторів та програмний код активізації форми

Потім задаються імена ідентифікаторів (рис. 4) для полів, списків і


кнопок. Далі вводиться програмний код для процедури активізації форми

Рис. 4. Таблиця ідентифікаторів

Private Sub UserForm_Activate()


'випадаючі списки
14
Range("k3").Select
Do While ActiveCell.Value <> ""
men.AddItem ActiveCell.Value
ActiveCell.Offset(1, 0).Select
Loop
Range("o3").Select
Do While ActiveCell.Value <> ""
firm.AddItem ActiveCell.Value
ActiveCell.Offset(1, 0).Select
Loop
'текст полів
Range("a3").Select
data.Text = ActiveCell.Value
firm.Text = ActiveCell.Offset(0, 1).Value
men.Text = ActiveCell.Offset(0, 2).Value
kil.Text = Format(ActiveCell.Offset(0, 3).Value, "###0")
cinp.Text = Format(ActiveCell.Offset(0, 4).Value, "####0.#0")
vart.Text = Format(ActiveCell.Offset(0, 5).Value, "#####0.#0")
ckud.Text = Format(ActiveCell.Offset(0, 6).Value, "####0.#0")
vtran.Text = Format(ActiveCell.Offset(0, 7).Value, "####0.#0")
syma.Text = Format(ActiveCell.Offset(0, 8).Value, "#####0.#0")
'блок
data.Locked = True
firm.Locked = True
men.Locked = True
kil.Locked = True
cinp.Locked = True
vart.Locked = True
ckud.Locked = True
vtran.Locked = True
syma.Locked = True
mist.Locked = True
tov.Locked = True
hurcin.Locked = True
vids.Locked = True
'кнопки
pop.Enabled = False
per.Enabled = False
zb.Enabled = False
vid.Enabled = False
End Sub

15
Для виконання початкового відображення форми користувача
(програмної оболонки) потрібно дати команду Run\ UserForm (F5).
Результат відображення значень 1-го запису показано на рис. 5.

Рис. 5. Відображення 1-го запису БД обліку

4.3 Програмний код процедур переміщення по записам БД

Програмний код для кнопок переміщення по записам БД обліку складається з


окремих процедур. Після введення коду тестуються окремі процедури та за
необхідності виправляються помилки.

Private Sub nac_Click()


'умова існування наступного запису
If ActiveCell.Offset(1, 0).Value <> "" Then
'перехід на наступний запис
ActiveCell.Offset(1, 0).Select
'поля
data.Text = ActiveCell.Value
firm.Text = ActiveCell.Offset(0, 1).Value
men.Text = ActiveCell.Offset(0, 2).Value
kil.Text = Format(ActiveCell.Offset(0, 3).Value, "###0")
cinp.Text = Format(ActiveCell.Offset(0, 4).Value, "####0.#0")
vart.Text = Format(ActiveCell.Offset(0, 5).Value, "#####0.#0")
ckud.Text = Format(ActiveCell.Offset(0, 6).Value, "####0.#0")
vtran.Text = Format(ActiveCell.Offset(0, 7).Value, "####0.#0")
16
syma.Text = Format(ActiveCell.Offset(0, 8).Value, "#####0.#0")
'активність кнопок
per.Enabled = True
pop.Enabled = True
zb.Enabled = False
vid.Enabled = False
Else
'активність кнопок
nac.Enabled = False
ost.Enabled = False
MsgBox "останній запис"
End If
End Sub

Private Sub pop_Click()


'перехід на попередній запис
If ActiveCell.Row > 3 Then
ActiveCell.Offset(-1, 0).Select
'поля
data.Text = ActiveCell.Value
firm.Text = ActiveCell.Offset(0, 1).Value
men.Text = ActiveCell.Offset(0, 2).Value
kil.Text = Format(ActiveCell.Offset(0, 3).Value, "###0")
cinp.Text = Format(ActiveCell.Offset(0, 4).Value, "####0.#0")
vart.Text = Format(ActiveCell.Offset(0, 5).Value, "#####0.#0")
ckud.Text = Format(ActiveCell.Offset(0, 6).Value, "####0.#0")
vtran.Text = Format(ActiveCell.Offset(0, 7).Value, "####0.#0")
syma.Text = Format(ActiveCell.Offset(0, 8).Value, "#####0.#0")
'активність кнопок
pop.Enabled = True
per.Enabled = True
nac.Enabled = True
zb.Enabled = False
vid.Enabled = False
ost.Enabled = True
Else
per.Enabled = False
pop.Enabled = False
nac.Enabled = True
ost.Enabled = True
'виведення повідомлення
MsgBox "перший запис"
End If
End Sub

17
Private Sub ost_Click()
'перехід на останній запис
Do While ActiveCell.Offset(1, 0).Value <> ""
ActiveCell.Offset(1, 0).Select
Loop
'поля
data.Text = ActiveCell.Value
firm.Text = ActiveCell.Offset(0, 1).Value
men.Text = ActiveCell.Offset(0, 2).Value
kil.Text = Format(ActiveCell.Offset(0, 3).Value, "###0")
cinp.Text = Format(ActiveCell.Offset(0, 4).Value, "####0.#0")
vart.Text = Format(ActiveCell.Offset(0, 5).Value, "#####0.#0")
ckud.Text = Format(ActiveCell.Offset(0, 6).Value, "####0.#0")
vtran.Text = Format(ActiveCell.Offset(0, 7).Value, "####0.#0")
syma.Text = Format(ActiveCell.Offset(0, 8).Value, "#####0.#0")
'активність кнопок
pop.Enabled = True
nac.Enabled = False
per.Enabled = True
ost.Enabled = False
zb.Enabled = False
vid.Enabled = False
MsgBox "останній запис"
End Sub

Private Sub per_Click()

Range("a3").Select

'поля

data.Text = ActiveCell.Value

firm.Text = ActiveCell.Offset(0, 1).Value

men.Text = ActiveCell.Offset(0, 2).Value

kil.Text = Format(ActiveCell.Offset(0, 3).Value, "###0")

cinp.Text = Format(ActiveCell.Offset(0, 4).Value, "####0.#0")

vart.Text = Format(ActiveCell.Offset(0, 5).Value, "#####0.#0")

ckud.Text = Format(ActiveCell.Offset(0, 6).Value, "####0.#0")

18
vtran.Text = Format(ActiveCell.Offset(0, 7).Value, "####0.#0")

syma.Text = Format(ActiveCell.Offset(0, 8).Value, "#####0.#0")

'активність кнопок

pop.Enabled = False

nac.Enabled = True

ost.Enabled = True

per.Enabled = False

zb.Enabled = False

vid.Enabled = False

MsgBox "перший запис"

End Sub

4.4 Програмний код для списків, полів та процедур оброблення даних

Спочатку записується програмний код для списків. Потім розрахункові


формули для полів. Далі вводиться програмний код для кнопок редагування
та записується оператор оголошення типів змінних у загальній області.

Private Sub firm_Change()


'нова змінна для адреси
x20 = ActiveCell.Address
'адреса 1-го значення
Range("o3").Select
Do While ActiveCell.Value <> ""
'вибір значення
If ActiveCell.Value = firm.Text Then
'нові змінні для залежних полів
mist1 = ActiveCell.Offset(0, 1).Value
vids1 = ActiveCell.Offset(0, 2).Value
End If
'переміщення по списку
ActiveCell.Offset(1, 0).Select
Loop
'присвоювання нових значень
mist.Text = mist1
vids.Text = Format(vids1, "##0.##0")
'наступний вибір
19
Range(x20).Select
End Sub
Private Sub men_Change()
'нова змінна для адреси
x10 = ActiveCell.Address
'адреса 1-го значення
Range("k3").Select
Do While ActiveCell.Value <> ""
'вибір значення
If ActiveCell.Value = men.Text Then
'нові змінні для залежних полів
tov1 = ActiveCell.Offset(0, 1).Value
hurcin1 = ActiveCell.Offset(0, 2).Value
End If
'переміщення по списку
ActiveCell.Offset(1, 0).Select
Loop
'присвоювання нових значень
tov.Text = tov1
hurcin.Text = Format(hurcin1, "###0.#0")
'наступний вибір
Range(x10).Select
End Sub

Private Sub kil_Change()


vart.Text = Format(Val(kil.Text) * Val(cinp.Text), "####0.#0")
If Val(kil.Text) > 5 Then
ckud.Text = Format(Val(vart.Text) * 20 / 100, "#####0.#0")
Else
ckud.Text = 0
End If
End Sub

Private Sub cinp_Change()


vart.Text = Format(Val(kil.Text) * Val(cinp.Text), "####0.#0")
End Sub

'Кнопка "Доповнити"
Private Sub dop_Click()
'Змінна для вибору режиму збереження
i=1

20
'Змінні для полів БД
y1 = data.Text
y2 = firm.Text
y3 = men.Text
y4 = kil.Text
y5 = cinp.Text
y6 = vart.Text
y7 = ckud.Text
y8 = vtran.Text
y9 = syma.Text
'активність кнопок
pop.Enabled = False
red.Enabled = False
per.Enabled = False
ost.Enabled = False
nac.Enabled = False
dop.Enabled = False
vux.Enabled = False
zb.Enabled = True
vid.Enabled = True
'поточна дата
data.Text = Date
'очищнння
firm.Text = ""
men.Text = ""
kil.Text = ""
cinp.Text = ""
vart.Text = ""
ckud.Text = ""
vtran.Text = ""
syma.Text = ""
mist.Text = ""
tov.Text = ""
hurcin.Text = ""
vids.Text = ""
'доступ
firm.Locked = False
men.Locked = False
kil.Locked = False
'Фон полів
firm.BackColor = &HFFFFC0
men.BackColor = &HFFFFC0
kil.BackColor = &HFFFFC0
'Курсор

21
firm.SetFocus
End Sub

'Кнопка "Редагувати"
Private Sub red_Click()
'Змінна для вибору режиму збереження
i=2
'Змінні для полів БД
y1 = data.Text
y2 = firm.Text
y3 = men.Text
y4 = kil.Text
y5 = cinp.Text
y6 = vart.Text
y7 = ckud.Text
y8 = vtran.Text
y9 = syma.Text
'активність кнопок
pop.Enabled = False
red.Enabled = False
per.Enabled = False
ost.Enabled = False
nac.Enabled = False
dop.Enabled = False
vux.Enabled = False
zb.Enabled = True
vid.Enabled = True
'доступ
firm.Locked = False
men.Locked = False
kil.Locked = False
'Фон полів
firm.BackColor = &HFFFFC0
men.BackColor = &HFFFFC0
kil.BackColor = &HFFFFC0
'Курсор
firm.SetFocus
End Sub

'Кнопка "Зберегти"
Private Sub zb_Click()
If i = 1 Then
Range("a4:i4").Select
'Копіювання запису

22
Selection.Copy
'Цикл з умовою
Do While ActiveCell.Value <> ""
ActiveCell.Offset(1, 0).Select
Loop
'Вставка нового запису БД
ActiveSheet.Paste
'Поля
ActiveCell.Value = data.Text
ActiveCell.Offset(0, 1).Value = firm.Text
ActiveCell.Offset(0, 2).Value = men.Text
ActiveCell.Offset(0, 3).Value = kil.Text
ActiveCell.Offset(0, 4).Value = cinp.Text
ActiveCell.Offset(0, 5).Value = vart.Text
ActiveCell.Offset(0, 6).Value = ckud.Text
ActiveCell.Offset(0, 7).Value = vtran.Text
ActiveCell.Offset(0, 8).Value = syma.Text
End If
If i = 2 Then
'Поля
ActiveCell.Value = data.Text
ActiveCell.Offset(0, 1).Value = firm.Text
ActiveCell.Offset(0, 2).Value = men.Text
ActiveCell.Offset(0, 3).Value = kil.Text
ActiveCell.Offset(0, 4).Value = cinp.Text
ActiveCell.Offset(0, 5).Value = vart.Text
ActiveCell.Offset(0, 6).Value = ckud.Text
ActiveCell.Offset(0, 7).Value = vtran.Text
ActiveCell.Offset(0, 8).Value = syma.Text
End If
'Колір
firm.BackColor = &HFFFFFF
men.BackColor = &HFFFFFF
kil.BackColor = &HFFFFFF
'блок полів
data.Locked = True
firm.Locked = True
men.Locked = True
kil.Locked = True
cinp.Locked = True
vart.Locked = True
ckud.Locked = True
vtran.Locked = True
syma.Locked = True

23
mist.Locked = True
tov.Locked = True
hurcin.Locked = True
vids.Locked = True
'кнопки
pop.Enabled = True
per.Enabled = True
ost.Enabled = False
nac.Enabled = False
zb.Enabled = False
vid.Enabled = False
vux.Enabled = True
dop.Enabled = True
red.Enabled = True
End Sub
'Кнопка "Відмінити"
Private Sub vid_Click()
If i = 1 Then
'перехід на останній запис
Do While ActiveCell.Offset(1, 0).Value <> ""
ActiveCell.Offset(1, 0).Select
Loop
'поля
data.Text = ActiveCell.Value
firm.Text = ActiveCell.Offset(0, 1).Value
men.Text = ActiveCell.Offset(0, 2).Value
kil.Text = Format(ActiveCell.Offset(0, 3).Value, "###0")
cinp.Text = Format(ActiveCell.Offset(0, 4).Value, "####0.#0")
vart.Text = Format(ActiveCell.Offset(0, 5).Value, "#####0.#0")
ckud.Text = Format(ActiveCell.Offset(0, 6).Value, "####0.#0")
vtran.Text = Format(ActiveCell.Offset(0, 7).Value, "####0.#0")
syma.Text = Format(ActiveCell.Offset(0, 8).Value, "#####0.#0")
End If
If i = 2 Then
data.Text = y1
firm.Text = y2
men.Text = y3
kil.Text = y4
cinp.Text = y5
vart.Text = y6
ckud.Text = y7
vtran.Text = y8
syma.Text = y9
End If

24
'Колір
firm.BackColor = &HFFFFFF
men.BackColor = &HFFFFFF
kil.BackColor = &HFFFFFF
'блок полів
data.Locked = True
firm.Locked = True
men.Locked = True
kil.Locked = True
cinp.Locked = True
vart.Locked = True
ckud.Locked = True
vtran.Locked = True
syma.Locked = True
mist.Locked = True
tov.Locked = True
hurcin.Locked = True
vids.Locked = True
'кнопки
pop.Enabled = True
per.Enabled = True
ost.Enabled = False
nac.Enabled = False
zb.Enabled = False
vid.Enabled = False
vux.Enabled = True
dop.Enabled = True
red.Enabled = True
End Sub

Dim x10, x20, mist1, tov1, y1, y2, y3 As String


Dim hurcin1, vids1, y5, y6, y7, y8, y9 As Double
Dim i, y4 As Integer

Sub recalculate_syma()
v = vart.Value
c = ckud.Value
vt = vtran.Value
If v <> "" And p <> "" And vt <> "" Then
syma = v - p + vt
syma.Text = Format(syma, "##0.#0")
End If
End Sub

25
Private Sub vart_Change()
If Val(kil.Text) > 5 Then
ckud.Text = Format(Val(vart.Text) * 20 / 100, "#####0.#0")
Else
ckud.Text = 0
End If
syma.Text = Format(Val(vart.Text) + Val(vtran.Text) - Val(ckud.Text),
"#####0.#0")
End Sub

Private Sub ckud_Change()


syma.Text = Format(Val(vart.Text) + Val(vtran.Text) - Val(ckud.Text),
"#####0.#0")
End Sub

Private Sub vtran_Change()


syma.Text = Format(Val(vart.Text) + Val(vtran.Text) - Val(ckud.Text),
"#####0.#0")
End Sub

4.5 Програмний код для кнопки “Вихід з форми”

Private Sub vux_Click()


'Аналіз коректності виходу
If MsgBox("Підтвердіть вихід із форми", vbYesNo, "Вікно запиту") = vbYes
Then
Unload UserForm1
End If
End Sub

26
Загальні висновки
VBA є об’єктно-орієнтованим середовищем, що містить великий набір
об'єктів, кожен з яких має безліч властивостей і методів. Сам об'єкт і всі
інструменти, необхідні для його створення, відтворення або знищення,
відносяться до певного класу. Ім'я класу вказує на тип об'єктів, які він
містить.

У VBA підтримується така програмна структура коли на вищому рівні


ієрархії розташовані додаток, а далі йдуть проекти, пов'язані з фактичними
документами цього додатка. На третьому рівні перебувають модулі (модулі
додатка, модулі користувача, модулі класу, модулі форм і модулі посилань),
а на нижчому – їхні процедури та функції.

Модуль – це частина програми , яка допускає її незалежну трансляцію.


Модуль складається із двох розділів: розділу оголошень (Declaration) і
розділу процедур і функцій. У першому розділі описуються глобальні змінні,
типи, визначені користувачем, у другому – процедури та функції.

Процедурою називається фрагмент програмного коду , розміщений між


операторами Sub і End Sub.

Спрощений формат процедури є таким:

[Private|Public] Sub <ім’я_процедури>(<аргумент_1>, … ,<аргумент


N>)

<оператор 1>

<оператор n>

End Sub

Ключове слово Private обмежує область видимості процедури або


функції, для якої воно задане модулем, у якому вона описана. У результаті її
можуть викликати тільки процедури або функції цього ж модуля. Ключове
слово Public, навпаки, оголошує процедуру або функцію доступною для всіх
135 модулів проекту. За замовчуванням (попередньою домовленістю)
довільна процедура або функція є загальнодоступною, тобто має статус
Public.

27
Виконання програмного коду процедури або функції відбувається при
передаванні їй керування. Передавання керування (виклик) може
здійснюватися різними способами. У загальному випадку підпрограма
викликається із програмного коду за допомогою спеціального оператора Саll,
у якому, крім цього ключового слова, вказуються ім'я процедури і фактичні
параметри виклику, список яких записується у круглих дужках.

Дуже важливу роль у програмуванні на VBA відіграє такий різновид


процедури, як процедура без параметрів. Процедури цього типу можуть
виступати у ролі процедур оброблення подій. Процедури оброблення подій є
основою механізму зв'язку подій з програмним кодом для їхнього
оброблення.

28
Список використаних джерел
1) Методичні вказівки до виконання курсової роботи з дисципліни
„Програмні оболонки і пакети” для студентів напряму підготовки
6.030502 „Економічна кібернетика” денної форми навчання.  Полтава:
ПолтНТУ, 2016.  22 с. Викладач: Ю.А. Харченко, канд. техн. наук,
доцент
2) 4. Харченко Ю.А. Програмні оболонки і пакети: навч. пос. / Ю.А.
Харченко.  Полтава: ПолтНТУ, 2016.  102 с.
3) Інформатика : Посібник / Ярко Кулешник, Тарас Рудий, Володимир
Сеник . -Львів , 2015.-249 с.[132,133]
4) Галіцин В.К. Програмні оболонки і пакети: Навчальний посібник /
В.К. Галіцин, Ю.Т. СидоренкоК.: КНЕУ, 2003. 212 с.[55,101]
5) В.А. Баженов, П.С. Вергерський, В.М. Горлач та ін. Інформатика.
Комп’ютерна техніка. Комп’ютерні технології: Підручник для
студентів вищих навчальних закладів. Київ: Каравела, 2004. – 464
с[205,207,304]
6) М. В. Бондаренко, О.Г. Качко Операційні системи. К.: Видавництво
BHV, 2005 – 576 с.[107,108,110,115]
7) Дибкова Л. М. Інформатика та комп’ютерна техніка: Посібник для
студентів вищих навчальних закладів. - К.: Академвидав, 2002. – 320 с.
[28,54,57]
8) 1. Галіцин В. К. Програмні оболонки і пакети: навч. посіб. / В. К.
Галіцин, Ю.Т. СидоренкоК.: КНЕУ, 2003. 212 с.
9) 2. Джелен Б. Применение VBA и макросов в Microsoft Excel / Б.
Джелен, Т. Сирстад; пер. с англ. М.: ООО “Издательский дом
Вильямс”, 2006. 624 с.
10) 3. Эйткен П. Разработка приложений на VBA в среде Office XP /
П. Эйткен: пер. с англ. М.: ООО “Издательский дом Вильямс”, 2005.
718 с.

29

You might also like