МІНІСТЕРСТВО ОСВІТИ УКРАЇНИ  p> 
 КАФЕДРА ПРОГРАМНОГО ЗАБЕЗПЕЧЕННЯ ЕОМ  p> 
 РІШЕННЯ ЕКОНОМІЧНИХ ЗАДАЧ ЗА ДОПОМОГОЮ VBA  p> 
 Курсова робота  p> 
 з дисципліни «матем . моделювання інформаційних систем » p> 
 Пояснювальна записка  p> 
 РЕФЕРАТ  p> 
 Дана дипломна робота має назву" Рішення економічних задач здопомогою Visual Basic for Application ".  p> 
 При написанні курсової роботи переслідуваласямета отримання практичних навичок вирішення економічних завдань спомощью 
VBA. Якщо говорити докладніше то був описані способи вирішення наступнихзавдань: нарахування премії у вигляді Комісійні та додаткової оплати,нарахування преміальних за визначеними умовами, модель управліннязапасами, задача про оптимальні капіталовкладеннях, задачі на побудовуматриці та обчислення суми, знаходження паперового розкрою і база даних.  p> 
 Пояснювальна записка до курсової роботи складається з листів, іподіляється на 4 основні частини: 
 1) теоретичні відомості в застосуванні до вирішення поставлених завдань 8курсової роботи 
 2) опис алгоритмів рішення поставденних завдань 
 3) програма створена в середовищі Microsoft Excel 97 SR-1 в макроси наоб'єктно-орієнтованої мовою високого рівня Microsoft Visual Basic 
 4) детальний опис модулів і макросів складових у сукупностієдиний документ Kurs розміром 202,101 байт.  p> 
 ЗМІСТ  p> 
 Введення. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 
. . . . . . . . . . . . . . . . . . . . . . . . 
1. Теоретичні відомості. . . . . . . . . . . . . . . . . . . . . . . 
. . . . . . . . . . . . . . . . .  p> 
 1.1 Функція користувача. . . . . . . . . . . . . . . . . . . . . . 
. . . . . . . . . . . . . . . . . .  p> 
 1.2 Змінні і постійні. . . . . . . . . . . . . . . . . . . . . . 
. . . . . . . . . . . . . . . 
1.3 Стандартні ф-ції користувача для роботи з масивами і матрицями 
1.4 Об'єкти, св-ва і методи VBA. . . . . . . . . . . . . . . . . . . . 
. . . . . . . . . . . . . . . 
1.5 Оператори циклу. . . . . . . . . . . . . . . . . . . . . . . . . . 
. . . . . . . . . . . . . . . . . . .  p> 
 2. Опис програми. . . . . . . . . . . . . . . . . . . . . . . 
. . . . . . . . . . . . . . . . .  p> 
 2.1 Опис змінних. . . . . . . . . . . . . . . . . . . . . . . . . 
. . . . . . . . . . . . . . . . 
2.2 Вхідні та вихідні дані. . . . . . . . . . . . . . . . . . . . . . 
. . . . . . . . . . . . . 
2.3 Детальний опис завдань. . . . . . . . . . . . . . . . . . . . 
. . . . . . . . . . . . . . 
2.3.1 Нарахування премії у вигляді Комісійні та додатковоїоплати. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 
. . . . . . . . . . . . . . . . . . . . . . . . 
2.3.2 Нарахування преміальних за певними умовами. . . . . . . . . . 
. . 
2.3.3 Складання відомості розрахунку прибутку то товару. . . . . . . . . . 
. . . . . 
2.3.4 Модель управління запасами. . . . . . . . . . . . . . . . . . . . 
. . . . . . . . . . . . . 
2.3.5 Визначення оптимальних капіталовкладень. . . . . . . . . . . . . 
. . . 
2.3.6 Знаходження оптимального розкрою. . . . . . . . . . . . . . . . . 
. . . . . . . . . . 
2.3.7 База даних. . . . . . . . . . . . . . . . . . . . . . . . . . . 
. . . . . . . . . . . . . . . . . . . . 
Список використаних джерел. . . . . . . . . . . . . . . . . . . . . 
. . . . . . . . . . . .  p> 
 ДОДАТОК 1: Програма мовою Microsoft Visual Basic. . . . . . . . . 
. .  p> 
 ВСТУП  p> 
 Завданням даної курсової роботи є складання документа в середовищі 
Microsoft Excel що включає в себе програми написані на мові Microsoft 
Visual Basic вирішальні 8 поставлених завдань, а саме нарахування преміїу вигляді Комісійні та додаткової оплати, нарахування преміальних за визначеними умовами, модель управління запасами, задача прооптимальних капіталовкладеннях, завдання на побудову матриці іобчислення суми, знаходження паперового розкрою і база даних.  p> 
 У пояснювальній записці описані алгоритми рішення задач, докладнийопис всіх макросів і модулів використовуються у програмі, іншими словаминаведені описи вхідних та вихідних даних документа, опис найбільшважливих змінних використовуються у програмі.  p> 
 Якщо говорити про середовище написання програм для вирішення поставленихзавдань - Microsoft Visual Basic for Application - то це поєднання одного знайпростіших мов програмування і всіх обчислювальних можливостейтакої багатогранної системи як Excel. За допомогою VBA можна легко і швидкостворювати різноманітні програми навіть не будучи фахівцем в областіпрограмування. VBA містить відносно потужну графічну середу,дозволяє наочно конструювати екранні форми та керуючі ел-ти. УЗагалом Visual Basic for Application дозволяє з легкістю вирішувати багатозавдання.  p> 
 1. ТЕОРЕТИЧНІ ВІДОМОСТІ У ЗАСТОСУВАННЯ ДО ВИРІШЕННЯ  p> 
 поставлених завдань  p> 
 1.1 функція користувача  p> 
 Функція користувача створюється на робочому аркуші з назвою модуль 
VBA, після чого з ними можна працювати за допомогою майстра функцій. Длястворення модуля VBA необхідно натиснути правою кнопкою миші на ярлик аркуша,перед яким потрібно розмістити даний модуль, і з розкривногоконтекстного меню вибрати команду "Вставка" (Insert). На вкладці 
"Загальні" (General) необхідно вибрати тип листа - Модуль (Module). Післянатискання кнопки OK відбудеться вставка листа модуля. Тепер на аркуші модуляможна ввести текст програми  p> 
 Якщо потрібно створити макрос в програмі потрібно зайти в середу Microsoft 
Visual Basic по засобах натискання комбінації клавіш Alt + F11, потім зайти вменю "Сервіс", далі в підменю "Макрос" і ввести ім'я макросу, якщо підчас виконання був виділений якийсь модуль то програма код створеногомакросу з'явиться саме в ньому  p> 
 Sub New_Macros ()  p> 
; in Module 1  p> 
 End Sub  p> 
 1.2 Переенние і постійні  p > 
 Всі змінні в VBA мають тип. Тип вказує що може зберігатимінлива: ціле число, рядок, дату і т.д.  p> 
 | Тип даних | займаний розмір пам'яті | Діапазон | 
| Boolean | 2 bytes | True/False | 
| Integer | 2 bytes | -32768 до32768 | 
| Long | 4 bytes | -2,147,483,648 до | 
| | | 2,147,483,648 | 
| Date | 8 bytes | | 
| | | Від 1 січня до 31 | 
| Array | Залежить від розміру і типу ел-тів | дакабря | 
| Object | 4 | | 
| String | 10 + довжина рядка | Будь-який визначений | 
| Currency | 8 | Об'єкт | 
| Variant | Залежить від вмісту змінної | Від 0 та 2х10 ^ 9 |  p> 
 1.3 Стандартні ф-ції користувача для роботи з масивами і матрицями  p> 
 Використовуються такі ф-ції робочого листа для роботи з масивами:  p> 
 Count Кількість чисел в масиві  p> 
 CountA Кількість ел-тов масиву  p> 
 Sum Сума ел-тов масиву  p> < p> SumProduct Сума творів ел-тов масивів  p> 
 SumSQ Сума квадратів ел-тов масиву  p> 
 SumVmY2 Сума квадратів різниць ел-тів 2-х масивів  p> 
 SumX2mY2 Сума різниць квадратів ел-тів 2-х масивів  p> 
 Використовуються такі ф-ції робочого листа для роботи з матрицями:  p> 
 Mmult - твір 2-х матриць  p> 
 Minverse - обернена матриця  p> 
 Transpose - транспонована матриця  p> 
 MdeTerm - визначник матриці  p> 
 1.4 Об'єкти, св-ва і методи VBA  p> 
 Одним з основних понять VBA є - об'єкт. 
Об'єкт містить список методів які до нього застосовні, а методи - це те 
, Що можна з об'єктом робити, таким чином об'єкт - це програмний ел-тякий має своє відображення на екрані, містить деякі змінні,визначають його св-ва, і деякі методи для управління об'єктом. У VBAіснує безліч вбудованих об'єктів, наприклад:  p> 
 Range - діапазон комірок (може включати тільки 1 осередок)  p> 
 Cells - координати клітинки  p> 
 Sheet - лист  p> 
 WorkSheets - робочий лист  p> 
 DialogSheets - діалогове вікно  p> 
 Більшість об'єктів прінадлнжіт до групи подібних об'єктів. Ці групиназиваються наборами. Наприклад, всі робочі аркуші робочої книги утворюютьнабір званий WorkSheets  p> 
 Синтаксис встановлення значення св-ва об'єкта має такий вигляд:  p> 
 Обьект.Свойство = Вираз 
Наприклад,  p> 
 WorkSheets ( "List1"). Range ( "W1"). Value = 999  p> 
 1.5 Оператори циклу  p> 
 1) Для багаторазового виконання одного оператора або групи операторівслужить оператор циклу FOR .. NEXT 
Синтаксис: 
 For Лічильник = Поч. знач. TO кінцеве знач. STEP  p> 
. . . 
 NEXT Лічильник  p> 
 2) Цикл Do .. While 
 Do While умова  p> 
 
 Loop  p> 
 3) Цикл Do .. Until 
 Do  p> 
 
 Loop Until умова  p> 
 2. ОПИС ПРОГРАМИ  p> 
 2.1 Опис змінних  p> 
 1) Завдання на обчислення Комісійні, іполученіяпремій (1-е і 2-е завдання)  p> 
 MAS1 (3) - масив з 3-х ел-тів до якого заносяться значення доходівмагазинів за вказані місяці  p> 
 MAS2 (3) - масив до якого заносяться доходи тільки тих магазинів дохідяких перевищує 1490,00 грв.  p> 
 MAS_I1 (3) - масив індексів  p> 
 B, C, D - вспомгательние змінні  p> 
 I - мінлива циклу  p > 
 Max - мінлива за допомогою якої знаходиться максимальне значеннямасиві доходів (спочатку цієї змінної спеціально присвоюється дужемаленьке значення)  p> 
 Indm, Indm2, Indm3 - індекси ел-тов масиву які є максимумамиякщо виключити попередній знайдений максимум, наприклад спочатку максимумомє Indm, потім знаходиться максимум з решти і т.д.  p> 
 2) Складання відомості розрахунку прибутку відтовару.  p> 
 Для визначення максимумів для кожного варіанту вартості товаруотримані суми знаходяться в комірках (b3: f11) заносяться в масив АА_2 (5),для відображення у відомості максимальної та мінімальної ціни на товар. 
 Масиви MM_1 (9) .. MM_6 (9) використовуються для відображення мінімальних цінна кожний товар по всіх варіантів продажу.  p> 
 3) Модель управління запасами  p> 
 Ф-ція користувача CALC обчислює фінансові результати за всіх можливихваріантах подій покупки журналів та їх реалізації. У ф-ції використовуютьсянаступні змінні: Цена_покупкі, Цена_продажі, Цена_Возврата; i, j 
-Змінні циклів. NROWS, ROWS - змінні типу Integer. Res () - масивтого ж типу змінної довжини.  p> 
 4) Задача про оптимальні капіталовкладеннях  p> 
 К - змінна типу Integer, відповідає за кількість капіталовкладень вмлн. грв.  p> 
 R () - масив змінної довжини, у програмі використовується як прибуток відвкладення i млр. в j-тий філія, де в R [i, j] - i (1 .. 7), а j (1 .. 6)  p> 
 I, j, p - змінні циклів.  p > 
 5) Завдання на знаходження оптимального розкрою  p> 
 Для побудови математичної моделі в програмі проводиться перебірвсіляких варіантів розкрою рулону стандартної довжини на рулони потрібноїдля цього в програмі використовуються наступні змінні: i1, i2, i3, i4 - змінні циклів a1, a2, a3, a4 - змінні яким присвоюються значення замовлених довжинрулонів. t - мінлива якій ф-ція Floor повертає найбільше ціле число, неперевищує дане. 
 M - мінімум серед замовлених довжин  p> 
 6) База даних i - змінна циклу використовується в додаванні записів в БД при пошукупорожнього поля l1 - мітка на яку посилається оператор Goto 
У програмі відбувається перехід на мітку в тому разі, якщо при заповненніданих користувач забув ввести прізвище за якою в програмівизначається порожній запис чи ні.  p> 
 2.2 Вхідні та вихідні дані  p> 
 1) Завдання на обчислення Комісійні, іполученіяпремій (1-е і 2-е завдання)  p> 
 Вхідними даними в цьому типі завдань є вихідні таблиці зданими про доходи магазинів за вказані місяці, а також сума доходів замісяцях. У програмі ці значення присвоюються різним змінним придопомоги об'єкта  p> 
 WorkSheets (""). Range (""). Value  p> 
 Вихідними даними є преміальні отриманів результаті обчислень у відповідності з умовою завдання.  p> 
 2) Складання відомості розрахунку прибутку відтовару.  p> 
 Вхідними даними є 9 різних видів цін на 5 комплектуючих ввідповідно до умов, а також значення цін на товар до комплектації.  p> 
 Вихідними даними є значення сум цін комплектуючих, тобто цінина товар, а також визначення максимальної та мінімальної ціни на товарвизначається не тільки за вартістю на товар в цілому, а й за вартістюкомплектуючих окремо.  p> 
 3) Модель управління запасами  p> 
 Вхідними даними в задачі є ціна продажу журналів, ціна купівлі тавидавництва продавцем, іціна повернення у разі нереалізації товару продавцем, також відомокількість реалізованих за раз продавцем пачок, і число подій за звітнийперіод часу.  p> 
 Вихідними даними в задачі є значення максимального прибутку іоптимального обсягу продажів, які в прогремме виводяться за допомогоюдіалогового вікна.  p> 
 4) Задача про оптимальні капіталовкладеннях  p> 
 У цьому завданні вхідними даними є значення мат. очікування прибуткуяк ф-цій капіталовкладень, в соств. з умовою 6 філій та 7 млн. грв.  p> 
 Вихідними даними є таблиця де виробляється: оптимальнерозподіл коштів, коли А млн. вкладаються в 1-й і 2-й філіївмесле, оптимальний розподіл коштів, коли А млн. вкладаються в 1 --й ,2-й і 3-й філії вмесле, оптимальний розподіл коштів, коли А млн.вкладаються в 1-й ,2-й ,3-й ,4-й філії вмесле, і оптимальний розподілкоштів, коли А млн. вкладаються в 1-й ,2-й ,3-й ,4-й і 5-й філії вмесле і 
1-й ,2-й ,3-й ,4-й ,5-й і 6-й.  P> 
 З цієї таблиці знаходиться максимальна очікуваний прибуток в даномувипадку дорівнює 1,01 млн. і оптимальні капіталовкладення, з таблиці видно,скільки млн. і в які філії потрібно вкласти:  p> 
 6 філія - 2 млн.  p> 
 5 філія - 1 млн.  p> 
 6 філія - 1 млн. 
  6 філія - 1 млн.  p> 
 6 філія - 1 млн.  p> 
 6 філія - 1 млн.  p> 
 5) Завдання на знаходження оптимального розкрою  p> 
 Вхідними даними є значення замовлених довжин і їх кол-ва, а такожзначення стандартної довжини.  p> 
 Вихідними даними будуть значення відходів при всіх варіантах розкроюрозглянутих під час розв'язання задачі, і сумарна кількість відходів які заумові задачі необхідно мінімізувати.  p> 
 
 6) База даних  p> 
 Сдесь вхідні дані є вихідними, тобто що користувач ввів тоі відображено в таблиці. База даних містить стежу поля: 
2 поля вводу: Прізвище, ім'я 
3 розкривних списку: Робота, Стаж, Робочий день (час) 
2. Групи по 2 прапорці: Кредитна картка, загран. Паспорт 
2 групи по 2 перемикача: Пол, Сімейний стан 
3. поля введення з лічильниками: Возвраст, Оклад, відпустку  p> 
 2.3 Детальний опис завдань  p> 
 2.3.1 Нарахування премії у вигляді Комісійні тадодаткової оплати.  p> 
 Створюємо таблицю нарахування премій, у клітинки B4: D10 заносимо значеннядоходів магазинів за вказані місяці, збоку в осередках A4: A10 будутьрозташовуватися назви місяців, відповідно до варіанту - з листопада по травень, а в 
B3: D3 - магазини, таким чином на перетині буде показана величинадоходу магізіна який знаходиться в цьому стовпці й місяця якийрозташований в цьому рядку.  p> 
 В осередку B11 вважаємо дохід 1-го магазину за всі місяці за формулою 
= СУММ (B4: B10), і розтягуємо маркер креслення до комірки D10, таким чиномпроводиться підрахунок доходів всіх магазинів за всі місяці.  p> 
 Визначаємо які ж з доходів магазинів перевищують 1490.00 грв. , Дляяких входять до цього числа преміальні становитимуть відповідно доумовою 2% від доходу за ці місяці, інші ел-ти в масиві спеціальнозаповнюються нулями.  p> 
 Do k = mas1 (i)  p> 
 If k> 1490 Then mas2 (i) = mas1 (i) Else mas2 (i) = 0 i = i + 1 
 Loop Until i = 4  p> 
 У цьому циклі в масив заносяться тільки ті значення які перевищуютьзаданий за умовою значення допустимості, в даному випадку це 1490,00 руб.  p> 
 Тепер доходи серед залишилися закладів потрібно розподілити за спаданням,для того, щоб у відповідності з умовою нарахувати магазинахдодаткові преміальні за 1-е, 2-е, 3-е місце. Для цього вибираємонаступний алгоритм: знаходимо максимум серед цих доходів і призначаємо цьогомагазину відповідну 1-му місцем премію, замем вибираємо максимум здоходів не враховуючи вже сужествующій (тобто не з огляду на перший максимум), іпризначає цього магазину соотв. 2-му місцю премію і т.д.  p> 
 
Do i = i + 1  p> 
 If mas2 (i)> Max Then  p> 
 Max = mas2 (i) indm = i  p> 
 End If 
 Loop Until i = 3  p> 
 Складаємо отримані 2% з тими що нараховуються додатково за 1,2,3і т.д місця, і заносимо резельтати в таблицю в рядок "Преміальні"  p> 
 Worksheets ([лист]). Cells ([координати осередків]). Value = Max * 0.02 + Max * 
0.04  p> 
 | Місяць | М а г а з | 
| | І н и | 
| | 1 | 2 | 3 | 
| Листопад | 100 | 100 | 120 | 
| Грудень | 300 | 150 | 650 | 
| Січень | 1000 | 130 | 250 | 
| Лютий | 1000 | 120 | 50 | 
| Березень | 0 | 100 | 760 | 
| Квітень | 100 | 100 | 0 | 
| Травень | 310 | 600 | 500 | 
| Всього | 2810 | 1300 | 2330 | 
| Преміальні! | 168, | 0 | 93,2 | 
| | 6 | | |  p> 
 
2.3.2 Нарахування премії за визначеними умовами  p> 
 Створюємо таблицю нарахування премій, заповнюємо її величинами доходів завказані місяці, і вважаємо суму доходів за всі місяці. Детальний описяк створювати таблицю і заповнювати її значеннями привілля в попередньомупункті.  p> 
 Визначаємо які з отриманих сум доходів лежать у якій з 4-хзазначених в умові областей і заносимо рез-ти в таблицю в комірки B12: D12які відображають преміальні  p> 
 Do i = i + 1 
 If AA_1 (i) <700 Then Worksheets ( "Заданіе2"). Cells (12, i + 1). Value = 
Worksheets ( "Заданіе2"). Cells (11, i + 1). Value * 0.01 
 If AA_1 (i)> = 700 And AA_1 (i) <1400 Then Worksheets ( "Заданіе2"). Cells (12,i + 1). Value = Worksheets ( "Заданіе2"). Cells (11, i + 1). Value * 0.015 
 If AA_1 (i)> = 1400 And AA_1 (i) <2800 Then 
Worksheets ( "Заданіе2"). Cells (12, i + 1). Value = 
Worksheets ( "Заданіе2"). Cells (11, i + 1). Value * 0.023 
 If AA_1 (i)> = 2800 Then Worksheets ( "Заданіе2"). Cells (12, i + 1). Value = < br>Worksheets ( "Заданіе2"). Cells (11, i + 1). Value * 0.025 
Loop Until i = 3  p> 
 Отримана таблиця виглядає наступним чином:  p> 
 | Місяць | М а г а з | 
| | І н и | 
| | 1 | 2 | 3 | 
| Листопад | 50 | 100 | 120 | 
| Грудень | 50 | 150 | 650 | 
| Січень | 100 | 130 | 250 | 
| Лютий | 100 | 120 | 50 | 
| Березень | 120 | 100 | 760 | 
| Квітень | 100 | 100 | 1000 | 
| Травень | 50 | 600 | 500 | 
| Усього | 570 | 1300 | 3330 | 
| Преміальні! | 5,7 | 19,5 | 83,25 |  p> 
 
2.3.3 Складання відомості розрахунку прибутку від товару  p> 
 Заповнюємо таблицю значеннями, як зазначено в умові т.е 5різновидів комплектуючих розташованих в клітинках B2: F2, і 9 варіантіввартостей комплек?? ующіх в комірках A3: A11. В осередках B3: F12 будерозташовуватися значення вартостей комплектуючих і вартості роботи докомплектації.  p> 
 В осередках G3 за формулою = СУММ (B3: F3) вважається загальна вартість всіхкомплектуючих, розтягуємо маркер комірки G3 до комірки G11, і отримуємовартість всіх комплектуючих для всіх варіантів вартостей.  p> 
 У програмі визначається яка деталь в якому місці сама дешовим,якщо не враховувати транспортні витрати і поставити собі за мету придбати деталі помінімальними цінами. Для цього в програмі визначаються мінімальні вартостіпо 5-ти деталям.  p> 
 Отримана відомість буде виглядати наступним чином: 
| Варіанти | В і д и к о м п л е к т | MIN/| 
| | У ю щ и х | MAX | 
| Вартість | 1-а | 2-га | 3-я | 4-я | 5-а | Усього | | 
| і | деталь | деталь | деталь | деталь | деталь | о | | 
| 1-й | 20 | 90 | 5 | 50 | 60 | 225 | | 
| 2-й | 19 | 85 | 4 | 55 | 50 | 213 | | 
| 3-й | 20 | 81 | 4 | 50 | 56 | 211 | Мінім. Ціна на | 
| | | | | | | | Товар | 
| 4-й | 25 | 87 | 8 | 57 | 58 | 235 | | 
| 5-й | 29 | 87 | 5 | 55 | 60 | 236 | | 
| 6-й | 18 | 88 | 4 | 40 | 61 | 211 | | 
| 7-й | 30 | 99 | 9 | 66 | 60 | 264 | | 
| 8-й | 30 | 99 | 9 | 66 | 64 | 268 | Макс. Ціна на | 
| | | | | | | | Товар | 
| 9-й | 21 | 90 | 6 | 54 | 55 | 226 | | 
| До | 15 | 75 | 3 | 40 | 50 | 183 | | 
| комплект | | | | | | | | 
| родної асоціації | | | | | | | |  p> 
 2.3.4 Модель управління запасами  p> 
 Вводимо початкові значення, тобто значення покупки продавцем журналів,продажу цих журналів і повернення до друкарні у випадку не реалізаціїтовару. Введення всього цього виробляється в діалоговому вікні, якестворюється як UserForm зі спеціальними кнопками і полями введення покупкижурналів, продажу, та повернення до друкарню. Вікно введення виглядає так:  p> 
  p> 
 Складаємо таблицю що складається з обсягу реалізації, числа подій, іімовірності цих подій, перші два нам дані за умовою а ймовірністьцих подій потрібно порахувати. Вводимо в комірку D7 наступну формулуобчислення ймовірностей (= D6/СУММ ($ D $ 5: $ I $ 5))і розтягуємо маркер до осередку I7.  p> 
 У клітинках C10: H15 спомощью ф-ції користувача CALC Обчислюємо фінансовірезультати за всіх можливих варіанти подій покупки журналів та їх реалізації  p> 
 
Function CALC (buy As Variant) As Variant 
Dim Цена_продажи, Цена_покупкі, Цена_возврата, NRows, i, j As Integer, 
Result () As Integer 
NRows = buy.Rows.Count 
Цена_продажи = Range ( "a2"). Value 
Цена_покупкі = Range ( "b2"). Value 
Цена_возврата = Range ( "c2"). Value 
ReDim Result (NRows, NRows) 
For i = 1 To NRows 
For j = 1 To NRows 
If ij Then Result (i, j) = buy (j) * (Цена_продажи - Цена_покупкі) - 
(buy (i) - buy (j)) * (Цена_покупкі - Цена_возврата) 
Next j 
Next i 
CALC = Result 
End Function  p> 
 В осередках J11: J16 за допомогою формули (= МУМНОЖ (C10: H15; транспо (D7: I7)))знаходимо очікуваний прибуток, соответсввующую різних варіантів покупкижурналів.  p> 
 У комірці F16 спомощью формули = найбільша (J11: J16; 1)обчислюємо максимальний прибуток. Її також можна знайти скориставшись ф -єю МАКС, знаходить максимальний ел-т зі списку  p> 
 = Макс (J11: J16)  p> 
 У комірці F17 за формулою = (ПОІСКПОЗ (найбільша (J11: J16; 1); J11 : J16; 0) - 
1) * 5відповідний оптимальний обсяг покупок газет. Потім функція CALC виводитьці оптимальні значення у вікні повідомлень.  p> 
 Ф-ція найбільший повертає К-е найбільше значення з безлічіданих. Ця ф-ція використовується для того, щоб вибрати значення за йоговідносного розташування. Наприклад, фунуцію НАЙБІЛЬШІ можнавикористовувати для того, щоб визначити найкращий, другий, третій результатв балах, показаний при тестуванні. Сістаксіс програми такий:  p> 
 найбільша (масив; К) де Масив - це масив або діапазон комірок девизначається найбільше значення, к - позиція (починаючи з найбільшою) вмасиві або діапазоні.  p> 
 Всі результати занесені в таблицю будуть виглядати наступним чином:  p> 
 | | | П р о | | | | 
| | | Д а ж | | | | 
| | | А | | | | 
| П | | 0 | 4 | 8 | 12 | 14 | 18 | | | 
| о | 0 | 0 | 0 | 0 | 0 | 0 | 0 | покуп | Прибув | 
| | | | | | | | | Ка | ь | 
| к | 4 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | | 
| | | | | | | | | | - Р. | 
| у | 8 | 0 | -20 | 16 | 16 | 16 | 16 | 4 | | 
| | | | | | | | | | - Р. | 
| п | 12 | 0 | -40 | -4 | 32 | 32 | 32 | 8 | | 
| | | | | | | | | | 12,94 р | 
| | | | | | | | | |. | 
| к | 14 | 0 | -60 | -24 | 12 | 48 | 48 | 12 | | 
| | | | | | | | | | 16,88 р | 
| | | | | | | | | |. | 
| а | 18 | 0 | -70 | -34 | 2 | 38 | 56 | 14 | | 
| | | | | | | | | | 9,00 р. | 
| | | Максимальна | | | | 18 | | 
| | | Прибуток | 16,88 | | | | 0,28 р. | 
| | | | Р. | | | | | 
| | | Оптимальний | 15 | | | | | 
| | | Об'єм | | | | | |  p> 
 2.3.5 Визначення оптимальних капіталовкладень  p> 
 Створюємо вихідну таблицю і заповнюємо її мат. очікуваннями прибутків усостветствіі з умовою.  p> 
 | | Ф е л | | 
| | І а л | | 
| | И | | 
| Млн. | 1 | 2 | 3 | 4 | 5 | 6 | 
| грв | | | | | | | 
| 0 | 0 | 0 | 0 | 0 | 0 | 0 | 
| 1 | 0, | 0,1 | 0,1 | 0,2 | 0,1 | 0,1 | 
| | 11 | 2 | 8 | | 7 | 2 | 
| 2 | 0, | 0,1 | 0,1 | 0,2 | 0,1 | 0,2 | 
| | 11 | 3 | 8 | 2 | 7 | 3 | 
| 3 | 0, | 0,1 | 0,1 | 0,2 | 0,1 | 0,2 | 
| | 12 | 3 | 9 | 4 | 8 | 4 | 
| 4 | 0, | 0,1 | 0,1 | 0,2 | 0,1 | 0,2 | 
| | 12 | 3 | 9 | 6 | 8 | 4 | 
| 5 | 0, | 0,1 | 0,2 | 0,2 | 0,1 | 0,2 | 
| | 13 | 3 | | 9 | 9 | 5 | 
| 6 | 0, | 0,1 | 0,2 | 0,3 | 0,1 | 0,2 | 
| | 13 | 3 | | 1 | 9 | 5 | 
| 7 | 0, | 0,1 | 0,2 | 0,3 | 0,2 | 0,2 | 
| | 14 | 3 | | 3 | | 6 |  p> 
 Для подальшого вирішення завдання, вводимо такі позначення:  p> 
 Нехай R (i, j) - прибуток що отримується від вкладення i млн. грв. У j-тийфілія, де в соотв. З варіантом i від (0,7), а j від (0,6)  p> 
 F (A, 1,2) - оптимальний розподіл коштів, коли А млн. грв.вкладаються в 1,2 філії разом  p> 
 F (A, 1,2,3) - оптимальний розподіл коштів, коли А млн. грв.вкладаються в 1,2,3 філії разом  p> 
 F (A, 1,2,3,4) - оптимальний розподіл коштів, коли А млн. грв.вкладаються в 1,2,3,4 філії разом.  p> 
 F (A, 1,2,3,4,5) - оптимальний розподіл коштів, коли А млн. грв.вкладаються в 1,2,3,4,5 філії разом.  p> 
 F (A, 1,2,3,4,5,6) - оптимальний розподіл коштів, коли А млн. грв.вкладаються в 1,2,3,4,5 філії разом.  p> 
 Значення I при яких досягається максимум визначають оптимальнікапіталовкладення у філії.  p> 
 Максимальні значення очікуваних прибутків обчислюється в програмі ізаноситься в осередку H4: L11 і буде виглядати наступним чином:  p> 
 | М а к с і | | | 
| м у м и | | | 
| 1 і | 1,2 | 1,2,3 | 1,2,3 | 1,2,3, | 
| 2 | і 3 | і 4 |, 4 і | 4,5 та | 
| | | | 5 | 6 | 
| 0 | 0 | 0 | 0 | 0 | 
| 0,12 | 0,1 | 0,2 | 0,2 | 0,2 | 
| | 8 | | | | 
| 0,23 | 0,3 | 0,38 | 0,38 | 0,38 | 
| 0,24 | 0,4 | 0,5 | 0,55 | 0,55 | 
| | 1 | | | | 
| 0,24 | 0,4 | 0,61 | 0,67 | 0,67 | 
| | 2 | | | | 
| 0,25 | 0,4 | 0,63 | 0,78 | 0,79 | 
| | 2 | | | | 
| 0,25 | 0,4 | 0,65 | 0,8 | 0,9 | 
| | 3 | | | | 
| 0,26 | +0,4 | 0,67 | 0,82 | 1,01 | 
| | 3 | | | |  p> 
 У програмі змінної К - присвоюємо значення рівне обьемукапіталовкладень. У масив R з робочого листа капіталовкладення вводимоочікуваний прибуток, розподілену по філіях.  p> 
 У діапазон комірок (B14: K22) виводиться оптимальний розподілкапіталовкладень по філіях. Після обчислень можна побачити щомаксімальния очікуваний прибуток становить 1,01 млн. грв. , З таблиці виднонаступні рез-ти:  p> 
 6 філія - 2 млн.  p> 
 5 філія - 1 млн.  p> 
 4 філія - 1 млн.  p> 
 3 філія - 1 млн.  p> 
 2 філія - 1 млн.  p> 
 1 філія - 1 млн.  p> 
 Сама таблиця виглядає наступним чином:  p> 
 | | Ф е л | | | | 
| | І а л | | | | 
| | И | | | | 
| 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 
| 1 | 0 | 1 | 0 | 1 | 0 | 1 | 1 | 0 | 1 | 0 | 
| 2 | 1 | 1 | 1 | 1 | 1 | 1 | 2 | 0 | 2 | 0 | 
| 3 | 1 | 2 | 2 | 1 | 2 | 1 | 2 | 1 | 3 | 0 | 
| 4 | 1 | 3 | 3 | 1 | 3 | 1 | 3 | 1 | 3 | 1 | 
| 5 | 3 | 2 | 2 | 3 | 3 | 2 | 4 | 1 | 4 | 1 | 
| 6 | 3 | 3 | 3 | 3 | 3 | 3 | 5 | 1 | 4 | 2 | 
| 7 | 5 | 2 | 2 | 5 | 3 | 4 | 6 | 1 | 5 | 2 | 
| Млн. | 1 | 2 | 1,2 | 3 | 1,2 | 4 | 1,2, | 5 | 1,2,3 | 6 | 
| грв. | | | | |, 3 | | 3 і | |, 4 та | | 
| | | | | | | | 4 | | 5 | |  p> 
 
2.3.6 Завдання на знаходження оптимального розкрою  p> 
 Складаємо таблицю в якій будуть приведені залишки від розкрою назамовлення при різних варіантах розкрою.  p> 
 Наприклад за умовою у відповідності з варіантом стандартна довжинарозкрою дорівнює 28 метрів,тобто перший варіант розкрою буде сосотавлять 0 рулон дляніх 4 м, 0 рулонівдовжиною 6м і 4 рулону довжиною 9 м, рулонів завдовжки 11 м. не буде, що в сумідасть 27, отже відходи будуть становити 1 метр. Другий варіант коли 
1 рулон за 6 м і два по 11 м, в цьому випадку залишків не буде і т.д. Всьоговиходить 19 варіантів розкрою.  p> 
 У програмі це буде виглядати таким чином:  p> 
 l = 28 a1 = 4: a2 = 6 a3 = 9: a4 = 11 r = 4 m = Application . Min (a1, a2, a3, a4) t = Application.Floor (l/m, 1)  p> 
 For i1 = 0 To t  p> 
 For i2 = 0 To t 
  For i3 = 0 To t  p> 
 For i4 = 0 To ts = 28 - a1 * i1 - a2 * i2 - a3 * i3 - a4 * i4  p> 
 If s> = 0 And s   Cells (r, 1). Value = r - 3  p> 
 Cells (r, 2). Value = i1  p> 
 Cells (r, 3). Value = i2  p> 
 Cells (r, 4). Value = i3  p> 
 Cells (r, 5). Value = i4  p > 
 Cells (r, 6). Value = sr = r + 1  p> 
 End If  p> 
 Next i4  p> 
 Next i3  p> < p> Next i2  p> 
 Next i1  p> 
 На аркуші це буде виглядати так:  p> 
 | Д л і н и р у л о н | 
| о в н а з а к а з | 
| Варіано | | | | | Залишок | 
| нти | | | | | | 
| Наклей і розфарбуй | 4 | 6 | 9 | 11 | від расктоя | 
| Ойки | | | | | | 
| 1 | 0 | 0 | 3 | 0 | 1 | 
| 2 | 0 | 1 | 0 | 2 | 0 | 
| 3 | 0 | 1 | 1 | 1 | 2 | 
| 4 | 0 | 3 | 1 | 0 | 1 | 
| 5 | 1 | 0 | 0 | 2 | 2 | 
| 6 | 1 | 1 | 2 | 0 | 0 | 
| 7 | 1 | 2 | 0 | 1 | 1 | 
| 8 | 1 | 2 | 1 | 0 | 3 | 
| 9 | 1 | 4 | 0 | 0 | 0 | 
| 10 | 2 | 0 | 1 | 1 | 0 | 
| 11 | 2 | 0 | 2 | 0 | 2 | 
| 12 | 2 | 1 | 0 | 1 | 3 | 
| 13 | 2 | 3 | 0 | 0 | 2 | 
| 14 | 3 | 1 | 1 | 0 | 1 | 
| 15 | 4 | 0 | 0 | 1 | 1 | 
| 16 | 4 | 0 | 1 | 0 | 3 | 
| 17 | 4 | 2 | 0 | 0 | 0 | 
| 18 | 5 | 1 | 0 | 0 | 2 | 
| 19 | 7 | 0 | 0 | 0 | 0 |  p> 
 Нехай Xj - кількість стандартних рулонів, розрізають по варіанту j, деj [1 .. 19]. Обмеження накладаються на змінні Xj пов'язані з вимогоюзабезпечити виготовлення замовленого кол-ва нестандартних рулонів. Ф-ціямети враховує сумарні відходи, одержані під час виконання замовлення. Такимчином маємо наступну мат. модель:  p> 
 Мінімізувати: 
Z = x1 +2 x3 + x4 2 x5 + x7 3 x8 +2 x11 +2 x12 +2 x13 + x14 + x15 +3 x16 + 
2 x18 + 4 (x5 + x6 + x7 + x8 + x9 +2 x10 +2 x11 +2 x12 +2 x13 +3 x14 +4 x15 +4 x16 +4 x17 5 ч18 7 x19-
220) + 6 (...- 210) +9 (...- 350) + 
11 (...- 380)  p> 
 Відведемо діапазон комірок (i4: i22) під змінні. Введемо в діапазоносередків (j3: m3) ліві частини обмежень, визначені стежу формулами:  p> 
 = СУММПРОІЗВ ($ I $ 4: $ I $ 22; B4: B22)  p> 
 = СУММПРОІЗВ ($ I $ 4: $ I $ 22; c4: c22)  p> 
 = СУММПРОІЗВ ($ I $ 4: $ I $ 22; d4: d22)  p> 
 = СУММПРОІЗВ ($ I $ 4: $ I $ 22; e4: e22)  p> 
 У комірку N4 введемо ф-цію цілі: 
= СУММПРОІЗВ ($ I $ 4: $ I $ 22; F4: F22) + B3 * (СУММПРОІЗВ ($ I $ 4: $ I $ 22; B4: B22) - 
J3) + C3 * (СУММПРОІЗВ ($ I $ 4: $ I $ 22; C4: C22)-K3) + D3 * (СУММПРОІЗВ ($ I $ 4: $ I $ 22; D4: D22) - 
L3) + E3 * (СУММПРОІЗВ ($ I $ 4: $ I $ 22; E4: E22)-M3)  p> 
 де в осередку B3: E3 введені довжини, а в осередку J3: M3 - кол-ва замовленихрулонів  p> 
 Виберемо команду сервіс - Пошук рішення і заповнимо відкрилосядіалогове вікно Пошук рішення (Solver):  p> 
 - Встановимо цільову комірку - N4  p> 
 - Змінюючи клітинки I4: I22  p> 
 - Обмеження $ I $ 4: $ I $ 22 = ціле  p> 
 $ I $ 4: $ I $ 22> = 0  p> 
 $ j $ 4: $ m $ 4> = $ j $ 3: $ m $ 3  p> 
 -- Ф-ція = мінімізація  p> 
 
| К о л - в а з а к а з а н и х р у л | 
| о н о в | 
| 220 | 210 | 35 | 38 | Відходи | 
| | | 0 | 0 | | 
| 220 | 210 | 35 | 38 | 49,99996 | 
| | | 0 | 0 | |  p> 
 2.3.7 База даних  p> 
 Створимо поля бази даних, і занесемо їх у таблицю. База даних будезаповнюватися програмою, програмі не потрібні назви полів, але дляполегшення орієнтації в першому рядку введемо дані відповідають полям 
БД  p> 
 Створимо кнопку "Додавання" для додавання записів у БД, робиться цетак: Викликаємо панель інструментів на якій розташовані примітиви, тобтовікно вводу, кнопки і т.д. Створюємо на формі кнопку, і спомощью св-ва Captionприсвоюємо їй назву "Додавання"  p> 
 Створимо макрос який буде відповідати за обробку подій після натисканняцієї кнопки. Перейдемо в середу Visual Basic for Application та в меню 
«Вставка» виберемо UserForm, на цю форму і помістимо всі об'єкти обумовленів умові (m розкривних списків, n полів вводу, ...). p> 
 У макросі відповідальному за подія кнопки «Додати» введемо процедуруяка буде активізувати форму UserForm1, і заносити всі дані з вікнавведення в комірки аркуша A4: L4, A5: L5 і т.д. 
 При натисканні кнопки "OK" виконається наступний код програми:  p> 
 Вікно введення виглядає наступним чином:  p> 
  p> 
 Посібник/За ред  p> 
 1. А. Гарнаев. Використання MS Excel і VBA в економіці і фінансах  p> 
 2. С. Браун, Visual Basic 5.0 з самого початку, Москва 1999, видавництво 
"Пітер"  p> 
 3. Microsoft Visual Basic - on-Line HELP  p> 
 ДОДАТОК 1  p> 
 ПРОГРАМА НА МОВІ MICROSOFT VISUAL BASIC  p> 
 Модуль 1: 
Sub Return_To_MainMenu () 
 Worksheets ( "Зміст"). Activate 
End Sub  p> 
 Модуль 2: 
Sub Task1 () 
 Worksheets ( "Заданіе1"). Activate 
End Sub 
Sub Task2 () 
 Worksheets ( "Заданіе2"). Activate 
End Sub 
Sub Task3 () 
 Worksheets ( "Заданіе3"). Activate 
End Sub 
Sub Task4 () 
 Worksheets ( "Заданіе4"). Activate 
End Sub 
Sub Task1_Evrica () 
 Dim mas1 (3) As Integer 
 Dim mas2 (3) As Integer 
 Dim Mas_I1 (3) As Integer 
 B = Worksheets ( "Заданіе1"). Range ( "B11 "). Value c = Worksheets (" Заданіе1 "). Range (" C11 "). Value 
 D = Worksheets (" Заданіе1 "). Range (" D11 "). Value mas1 (1) = B mas1 (2 ) = c mas1 (3) = D i = 1 l = 0 
 Do k = mas1 (i)  p> 
''''' Занесення в масив Mas2 ел-тов> 1490  p> 
 If k> 1490 Then mas2 (i) = mas1 (i) Else mas2 (i) = 0 i = i + 1 
 Loop Until i = 4  p> 
 Max = -1 i = 0 
 Do i = i + 1  p> 
 If mas2 (i)> Max Then  p> 
 Max = mas2 (i) indm = i  p> 
 End If 
 Loop Until i = 3 
 Worksheets ( "Заданіе1"). Cells (12, indm + 1). Value = Max * 0.02 + Max * 0.04 
 'Worksheets ( "Заданіе1"). Range ( " f15 "). Value = r  p> 
 'GoTo l 
''''' Знаходимо MAx ел-т з решти, 
''''' і запам'ятовуємо його індеск 
 Max = -1 i = 0 
 Do i = i + 1  p> 
 If i indm And mas2 (i)> Max Then  p> 
 Max = mas2 (i) indm2 = i  p> 
 End If 
 Loop Until i = 3 
 Worksheets ( "Заданіе1"). Cells (12, indm2 + 1). Value = Max * 0.02 + Max * 
0.02 
''''' Знаходимо MAx ел-т з решти, 
''''' і запам'ятовуємо його індеск 
 Max = -1 i = 0 
 Do i = i + 1  p> 
 If mas2 (i)> Max And i indm2 And i indm Then  p> 
 Max = mas2 (i) indm3 = i  p> 
 End If 
 Loop Until i = 3 
 Worksheets ( "Заданіе1"). Cells (12, indm3 + 1). Value = Max * 0.02 + Max * 
0.01 
 End Sub 
Sub Task2_Evrica () 
Dim AA_1 (3) As Integer 
B = Worksheets ( "Заданіе2"). Range ( "B11"). Valuec = Worksheets ( "Заданіе2"). Range ( "C11"). Value 
D = Worksheets ( "Заданіе2"). Range ( "D11"). Value 
AA_1 (1) = B 
AA_1 (2) = c 
AA_1 (3) = Di = 0 
Do i = i + 1 
 If AA_1 (i) <700 Then Worksheets ( "Заданіе2"). Cells (12, i + 1). Value = 
Worksheets ( "Заданіе2"). Cells (11, i + 1). Value * 0.01 
 If AA_1 (i)> = 700 And AA_1 (i) <1400 Then Worksheets ( "Заданіе2"). Cells (12,i + 1). Value = Worksheets ( "Заданіе2"). Cells (11, i + 1). Value * 0.015 
 If AA_1 (i)> = 1400 And AA_1 (i) <2800 Then 
Worksheets ( "Заданіе2"). Cells (12, i + 1). Value = 
Worksheets ( "Заданіе2"). Cells (11, i + 1). Value * 0.023 
 If AA_1 (i)> = 2800 Then Worksheets ( "Заданіе2"). Cells (12, i + 1). Value = < br>Worksheets ( "Заданіе2"). Cells (11, i + 1). Value * 0.025 
Loop Until i = 3 
End Sub 
Sub Task3_Evrica () 
 Dim AA_2 (10) As Integer  p> 
 Dim MM_1 (10) As Integer 
 Dim MM_2 (10) As Integer 
 Dim MM_3 (10) As Integer 
 Dim MM_4 (10) As Integer 
 Dim MM_5 (10) As Integer  p> 
 Worksheets ( "Заданіе3"). Range ( "I3: I12"). Clear 
Worksheets ( "Заданіе3"). Range ( "b3: h12"). Font.Bold = False 
Worksheets ( "Заданіе3"). Range ( "b3: h12"). Font.Size = 10 
Worksheets ( "Заданіе3"). Range ( "b3: h12"). Font.Italic = Falsei = 0 
Do i = i + 1 
 AA_2 (i) = Worksheets ( "Заданіе3"). Cells (i + 2, 7). Value 
Loop Until i = 9 
Max = -1i = 0 
Doi = i + 1 
If AA_2 (i)> Max Then 
Max = AA_2 (i)mm = i 
End If 
Loop Until i = 9  p> 
 Worksheets ( "Заданіе3"). Cells (mm + 2, 8). Value = "Макс. Ціна на товар" 
Min = 100000i = 0 
Doi = i + 1 
If AA_2 (i) Min = AA_2 (i)mm2 = i 
End If 
Loop Until i = 9 
Worksheets ( "Заданіе3"). Cells (mm2 + 2, 8). Value = "Мінім. Ціна на товар" 
'''''''''''''''''''''''''''''i = 0 
Do i = i + 1 
 MM_1 (i) = Worksheets ( "Заданіе3"). Cells (i + 2, 2). Value 
 MM_2 (i) = Worksheets ( "Заданіе3"). Cells (i + 2, 3). Value 
 MM_3 (i) = Worksheets ( "Заданіе3"). Cells (i + 2, 4). Value 
 MM_4 (i) = Worksheets ( "Заданіе3"). Cells (i + 2, 5). Value 
 MM_5 (i) = Worksheets ( "Заданіе3"). Cells (i + 2, 6). Value 
Loop Until i = 9 
''''1 
Min = 100000i = 0 
Doi = i + 1 
If MM_1 (i) Min = MM_1 (i)x1 = i 
End If 
Loop Until i = 9 
Worksheets ( "Заданіе3"). Cells (x1 + 2, 2). Font.Bold = True 
Worksheets ( "Заданіе3"). Cells (x1 + 2, 2). Font.Size = 11 
Worksheets ( "Заданіе3"). Cells (x1 + 2, 2). Font.Italic = True 
''''2 
Min = 100000i = 0 
Doi = i + 1 
If MM_2 (i) Min = MM_2 (i)x2 = i 
End If 
Loop Until i = 9 
Worksheets ( "Заданіе3"). Cells (x2 + 2, 3). Font.Bold = True 
Worksheets ( "Заданіе3"). Cells (x2 + 2, 3). Font.Size = 11 
Worksheets ( "Заданіе3"). Cells (x2 + 2, 3). Font.Italic = True 
''''3 
Min = 100000i = 0 
Doi = i + 1 
If MM_3 (i) Min = MM_3 (i)x3 = i 
End If 
Loop Until i = 9 
Worksheets ( "Заданіе3"). Cells (x3 + 2, 4). Font.Bold = True 
Worksheets ( "Заданіе3"). Cells (x3 + 2, 4). Font.Size = 11 
Worksheets ( "Заданіе3"). Cells (x3 + 2, 4). Font.Italic = True 
''''4 
Min = 100000i = 0 
Doi = i + 1 
If MM_4 (i) Min = MM_4 (i)x4 = i 
End If 
Loop Until i = 9 
Worksheets ( "Заданіе3"). Cells (x4 + 2, 5). Font.Bold = True 
Worksheets ( "Заданіе3"). Cells (x4 + 2, 5). Font.Size = 11 
Worksheets ( "Заданіе3"). Cells (x4 + 2, 5). Font.Italic = True 
''''5 
Min = 100000i = 0 
Doi = i + 1 
If MM_5 (i) Min = MM_5 (i)x5 = i 
End If 
Loop Until i = 9 
Worksheets ( "Заданіе3"). Cells (x5 + 2, 6). Font.Bold = True 
Worksheets ( "Заданіе3"). Cells (x5 + 2, 6). Font.Size = 11 
Worksheets ( "Заданіе3"). Cells (x5 + 2, 6). Font.Italic = True 
''''6 
End Sub 
Sub Task5 () 
 Worksheets ( "Заданіе5"). Activate 
End Sub 
Sub Task6 () 
 Worksheets ( "Заданіе5"). Activate 
End Sub 
Sub Task5_Evrica () 
 Dim G (4, 4) 
 Dim c (4)c (1) = Worksheets ( "Заданіе5"). Range ( "a1")c (2) = Worksheets ( "Заданіе5"). Range ( "b1")c (3) = Worksheets ( "Заданіе5"). Range ( "c1")c (4) = Worksheets ( "Заданіе5"). Range ( "d1") 
Worksheets ( "Заданіе5"). Range ( "a3: d6"). Value = ""  p>  For i = 1 To 4 
For j = 1 To 4 
 If ij + 1 Then G (i, j) = Abs (c (i - j) ^ 3 - c (i)) 
Next 
Next 
For i = 1 To 4 
For j = 1 To 4 
Worksheets ( "Заданіе5"). Cells (i + 2, j). Value = G (i, j) 
Next 
Next 
End Sub 
Sub Task6_Evrica () 
 Dim X (4) 
 Dim Y (4) 
X (1) = Worksheets ( "Заданіе5"). Range ( "a12") 
X (2) = Worksheets ( "Заданіе5"). Range ( "a13") 
X (3) = Worksheets ( "Заданіе5"). Range ( "a14") 
X (4) = Worksheets ( "Заданіе5"). Range ( "a15") 
Y (1) = Worksheets ( "Заданіе5"). Range ( "b12") 
Y (2) = Worksheets ( "Заданіе5"). Range ( "b13") 
Y (3) = Worksheets ( "Заданіе5"). Range ( "b14") 
Y (4) = Worksheets ( "Заданіе5"). Range ( "b15")s1 = 0s2 = 0s3 = 0m = 4 
For i = 1 To ms1 = s1 + X (i)s2 = s2 + X (i) * Y (i)s3 = s3 + X (i) * X (i) 
Nexts = (2 * s1 + s2) * (2 - s1) + 3 + s3 
Worksheets ( "Заданіе5"). Range ( "D15"). Value = s 
End Sub 
Sub Task7 () 
Worksheets ( "Розкрій"). Activate 
End Sub 
Sub Task7_DB () 
UserForm1.ComboBox1.Clear 
UserForm1.ComboBox2.Clear 
UserForm1.ComboBox3.Clear  p> 
 UserForm1.ComboBox1.AddItem ( "Директор") 
UserForm1.ComboBox1.AddItem ( "Зам. Директора") 
UserForm1.ComboBox1.AddItem ( "Менеджер") 
UserForm1.ComboBox1.AddItem ( "Сектетарь") 
UserForm1.ComboBox1.AddItem ( "Адміністратор") 
UserForm1.ComboBox1.AddItem ( "Охорона") 
UserForm1.ComboBox1.AddItem ( "Водій") 
UserForm1.ComboBox1.AddItem ( "Сторож") 
UserForm1.ComboBox1.AddItem ( "Прибиральник")  p> 
 UserForm1.ComboBox2.AddItem ( "10 років.") 
UserForm1.ComboBox2.AddItem ( "9 років.") 
UserForm1.ComboBox2.AddItem ( "8 років.") 
UserForm1.ComboBox2.AddItem ( "3 роки.") 
UserForm1.ComboBox2.AddItem ( "2 роки.") 
UserForm1.ComboBox2.AddItem ( "1 рік.") 
UserForm1.ComboBox2.AddItem ( "менше року .") p> 
 UserForm1.ComboBox3.AddItem (" 5 годин ") 
UserForm1.ComboBox3.AddItem ( "6 годин") 
UserForm1.ComboBox3.AddItem ( "7 годин") 
UserForm1.ComboBox3.AddItem ( "8 годин")  p> 
 UserForm1.Show 
End Sub 
Sub Task7_List () 
Worksheets ( "БД"). Activate 
End Sub 
Sub Model_of_storekeeping () 
 UserForm2.Show 
End Sub  p> 
 Модуль 3:  p> 
 Option Explicit 
'Моделей управління запасами  p> 
 Function CALC (buy As Variant) As Variant 
Dim Цена_продажи, Цена_покупкі, Цена_возврата, NRows, i, j As Integer, 
Result () As Integer 
NRows = buy.Rows.Count 
Цена_продажи = Range ( "a2"). Value 
Цена_покупкі = Range ( "b2"). Value 
Цена_возврата = Range ( "c2"). Value 
ReDim Result (NRows, NRows) 
For i = 1 To NRows 
For j = 1 To NRows 
If ij Then Result (i, j) = buy (j) * (Цена_продажи - Цена_покупкі) - 
(buy (i) - buy (j)) * (Цена_покупкі - Цена_возврата) 
Next j 
Next i 
CALC = Result 
End Function  p> 
 
Sub Begin () 
Worksheets ( "Зміст"). Activate 
End Sub 
Sub Optimum_capital_investmentsEVR () 
Dim i, j, k, n, p, l, t As Integer 
Dim m, r (), A () As Double k = 7  p> 
 ReDim r (k + 1, 6), A (k + 1)  p> 
 For i = 1 To k + 1  p> 
 For j = 2 To 7 r (i, j - 1) = Cells (i + 3, j). Value  p> 
 Next j  p> 
 Next it = 2  p> 
 For p = 2 To 6  p> 
 If p = 2 Then  p> 
 For j = 1 To k + 1  p> < p> A (j) = Cells (j + 3, 2). Value  p> 
 Next j  p> 
 End If  p> 
 If p> 2 Then  p > 
 For j = 1 To k + 1  p> 
 A (j) = Cells (j + 3, p + 5). Value  p> 
 Next j  p> < p> End If  p> 
 For n = 1 To k + 1 m = -1  p> 
 For j = 1 To n  p> 
 If m 
 End If  p> 
 Next j  p> 
 Cells (n + 3, 6 + p). Value = ml = t  p> 
 For j = 1 To n  p> < p> If m = A (j) + r (n + 1 - j, p) Then  p> 
 Cells (n + 6 + k, l). Value = j - 1  p> 
 Cells (n + 6 + k, l + 1). Value = n - jl = l + 2  p> 
 End If  p> 
 Next j  p> 
 Next nt = l  p> 
 Next p 
End Sub  p> 
 Модуль 4:  p> 
 Sub Розкрій () 
Dim r, i1, i2, i3, i4, s, t As Integer 
Dim l, a1, a2, a3, a4, a5, m As Integer  p> 
 'Dim F, TT, SS, ZZ As String  p> 
 l = 28a1 = 4: a2 = 6a3 = 9: a4 = 11r = 4m = Application.Min (a1, a2, a3, a4)t = Application.Floor (l/m, 1) 
For i1 = 0 To t 
For i2 = 0 To t 
For i3 = 0 To t 
For i4 = 0 To ts = 28 - a1 * i1 - a2 * i2 - a3 * i3 - a4 * i4 
If s> = 0 And s Cells (r, 1). Value = r - 3 
Cells (r, 2). Value = i1 
Cells (r, 3). Value = i2 
Cells (r, 4). Value = i3 
Cells (r, 5). Value = i4 
Cells (r, 6). Value = sr = r + 1 
End If 
Next i4 
Next i3 
Next i2 
Next i1 
Range ( "J4"). FormulaLocal = "= СУММПРОІЗВ ($ I $ 4: $ I $" & r - 1 & "; B4: B" & r - 1 
& ")" 
Range ( "K4"). FormulaLocal = "= СУММПРОІЗВ ($ I $ 4: $ I $" & r - 1 & "; C4: C" & r - 1 
& ")" 
Range ( "L4"). FormulaLocal = "= СУММПРОІЗВ ($ I $ 4: $ I $" & r - 1 & "; D4: D" & r - 1 
& ")" 
Range ( "M4"). FormulaLocal = "= СУММПРОІЗВ ($ I $ 4: $ I $" & r - 1 & "; E4: E" & r - 1 
& ")" 
Range ( "N4"). FormulaLocal = "= СУММПРОІЗВ ($ I $ 4: $ I $" & r - 1 & "; F4: F" & r - 1 
& ") + B3 * (СУММПРОІЗВ ($ I $ 4: $ I $" & r - 1 & "; B4: B" & r - 1 & ") - 
J3) + C3 * (СУММПРОІЗВ ($ I $ 4: $ I $ "& r - 1 &"; C4: C "& r - 1 &") - 
K3) + D3 * (СУММПРОІЗВ ($ I $ 4: $ I $ "& r - 1 &"; D4: D "& r - 1 &") - 
L3) + E3 * (СУММПРОІЗВ ($ I $ 4: $ I $ "& r - 1 &"; E4: E "& r - 1 &")-M3) "
End Sub 
Sub Optimum_capital_investments () 
Worksheets ( "Опт.капітал"). Activate 
End Sub  p>  
UserFORM1  p> 
 Оброблювач події кнопки 
Private Sub CommandButton1_Click () 
If UserForm1.TextBox1.Text = "" Then GoTo lli = 0 
Doi = i + 1 
Loop Until Worksheets ( "БД"). Cells (i, 1) = "" 
Worksheets ( "БД"). Cells (i, 1) = UserForm1.TextBox1.Text 
Worksheets ( "БД"). Cells (i, 2) = UserForm1.TextBox3.Text 
If UserForm1.CheckBox2 = True Then  p> 
 Worksheets ( "БД"). Cells (i, 6) = "Є"  p> 
 Else  p> 
 Worksheets ( "БД "). Cells (i, 6) =" Ні "
End If 
 If UserForm1.CheckBox1 = True Then 
 Worksheets ( "БД"). Cells (i, 7) = "Є" 
 Else 
 Worksheets ( "БД"). Cells (i, 7) = "Ні" 
End If 
Worksheets ( "БД"). Cells (i, 8) = UserForm1.TextBox5.Text + "грв." 
Worksheets ( "БД"). Cells (i, 9) = UserForm1.TextBox2.Text 
Worksheets ( "БД"). Cells (i, 10) = UserForm1.TextBox6.Text + "міс."  P> 
 If UserForm1.OptionButton3 = True Then Worksheets ( "БД"). Cells (i, 11 ). Value 
= "Є родина" 
If UserForm1.OptionButton4 = True Then Worksheets ( "БД"). Cells (i, 11). Value 
= "Ні сім'ї"  p> 
 If UserForm1.OptionButton5 = True Then Worksheets ( "БД"). Cells (i, 12). Value 
= "M" 
If UserForm1.OptionButton6 = True Then Worksheets ( "БД"). Cells (i, 12). Value 
= "Ж"  p> 
 Worksheets ( "БД"). Cells (i, 3). Value = ComboBox1.Value 
Worksheets ( "БД"). Cells (i, 4). Value = ComboBox2.Value 
Worksheets ( "БД"). Cells (i, 5). Value = ComboBox3.Value  p> 
 ll: 
UserForm1.Hide 
Worksheets ( "БД"). Activate 
End Sub  p> 
 Оброблювач події кнопки 
Private Sub CommandButton2_Click () 
UserForm1.Hide 
Worksheets ( "БД"). Activate 
End Sub  p> 
 
UserForm2  p> 
 Оброблювач події кнопки 
Private Sub CommandButton1_Click () 
 Worksheets ( "Заданіе4"). Range ( "c10: h15"). Value = "" 
 Worksheets ( "Заданіе4"). Range ( "j11: j16"). Value = " "
 Worksheets (" Заданіе4 "). Range (" b2 "). Value = UserForm2.TextBox1 
 Worksheets (" Заданіе4 "). Range (" a2 "). Value = UserForm2.TextBox2 
 Worksheets ( "Заданіе4"). Range ( "c2"). Value = UserForm2.TextBox3 
 UserForm2.Hide 
 Range ( "C10: H15"). FormulaArray = "= Модуль3.CALC (I11: I16)" 
 Range ( "J11: J16"). FormulaArray = "= MMULT ((C10: H15), TRANSPOSE (d7: i7))" 
 Range ( "f16"). Select 
 ActiveCell.FormulaR1C1 = "= large (r [-5] c [4]: rc [4], 1) "
 Range (" f17 "). Select 
 ActiveCell.FormulaR1C1 =" = (match (large (r [-6] c [4]: r [-1] c [4], 1), r [- 
6] c [4]: r [-1] c [4], 0) -1) * 5 "r = Range (" f16 "). Value v = Range (" f17 "). Value 
 UserForm3. Label3.Caption = Worksheets ( "Заданіе4"). Range ( "f16") 
 UserForm3.Label4.Caption = Worksheets ( "Заданіе4"). Range ( "f17") 
 UserForm3.Show 
End Sub  p> 
 Оброблювач події кнопки 
Private Sub CommandButton2_Click () 
 UserForm2.Hide 
End Sub  p> 
 
UserForm3  p> 
 Private Sub CommandButton1_Click () 
 UserForm3.Hide 
End Sub  p> 
 
 p>