додати матеріал

приховати рекламу

Організація документообігу за допомогою Visual Basic for Application

[ виправити ] текст може містити помилки, будь ласка перевіряйте перш ніж використовувати.

ЗМІСТ
АНОТАЦІЯ
ВСТУП
1. ТЕОРЕТИЧНИЙ РОЗДІЛ.
1.1 Обгрунтування мови програмування
1.2 Введення в Visual Basic for Application
1.2.1 Про об'єкти і колекціях
1.2.2 Приклади використання VBA в середовищі Access.
1.3. Розробка та експлуатація АІС
1.3.1 Основні поняття технології проектування ІС
1.3.2 Основи сучасної технології проектування АІС
1.3.3 Автоматизоване проектірованіеCASE-технологій
1.3.4 Реінжиніринг бізнес-процесів та проектування корпоративної ІС ..
2. ЕКСПЕРИМЕНТАЛЬНИЙ РОЗДІЛ
2.1 Постановка завдання
2.1.1 Вхідні дані
2.1.2 Вихідні дані
2.1.3 Схема і опис алгоритму розв'язання задачі
2.1.3.1 Блок-схема інтерфейсу
2.1.3.2 Опис блок-схеми інтерфейсу
2.2 Опис процесу налагодження програми
2.3.Характерістіка програми
2.4. Контрольний приклад
2.5 Інструкція користувача
Висновок
Додаток 1
Додаток 2
Список літератури

Введення
Друга половина ХХ ст. Ознаменувалася великим технологічним ривком науково-технологічного процесу. Поява в цей період електронно-обчислювальних машин (ЕОМ) відкрило нові можливості обробки інформації.
У 50-і роки на ЕОМ в основному вирішувалися окремі науково-інженерні та економічні завдання, пов'язані з необхідністю переробки великих інформаційних масивів. Споживач та його інтереси у використанні ЕОМ, хоча і не заперечувалися, проте не були пріоритети на цьому етапі.
У 60-ті роки виникає ідея комплексної автоматизації управління підприємства та інтеграції інформаційного забезпечення на основі баз даних (БД). Реальністю автоматизовані системи управління (АСУ) стали в 70-і роки на базі ЕОМ 3-го покоління, які дозволяли створювати обчислювальні системи з розподіленою термінальною мережею. Створення на базі ЕОМ і засобів зв'язку АСУ:
- Технологічними процесами (АСУТП)
- Підприємствами (АСУП)
- Галузями (ОАСУ)
- Загальнодержавним рівнем управління (ОДАБА) вивело розробників і споживачів на новий, більш високий рівень розуміння можливостей використання обчислювальної техніки в соціально-економічному розвитку суспільства.
80-ті роки відзначені широким використанням персональних комп'ютерів управлінськими працівниками, створенням великого набору автоматизованих місць (АРМ) на базі мов 4-го покоління, що дозволяють за допомогою генераторів запитів, звітів, екранних форм, діалогу, швидко розробляти зручні для користувачів додатку. Однак розосередження інформаційних систем (ІС) у вигляді АРМів, локальна автоматизація, не сприяли інтеграції управлінських функцій, а отже, суттєвого підвищення ефективності управління підприємством.
Для 90-х років характерно розвиток телекомунікаційних засобів, що призвело до створення гнучких локальних і глобальних обчислювальних мереж, що дозволило розробляти і впроваджувати корпоративні ІС (КІС). КІС об'єднують можливості систем комплексні для автоматизації управління 70-х років і локальної автоматизації управління 80-х років. Наявність гнучких засобів зв'язку управлінських працівників, можливість колективної роботи як безпосередніх виконавців господарської діяльності, так і менеджерів, які приймають управлінські рішення, дозволяють багато в чому переглянути принципи управління підприємствами або проводити кардинальний реінжиніринг бізнес процесів.
У свою чергу, оперативність комунікації та інтеграції учасників бізнес процесів зумовлюють розробку та використання ефективних технологій проектування, що забезпечують прискорення створення, впровадження та розвитку проектів ІС, поліпшення їх функціональної та адаптивної надійності і, в кінцевому рахунку підвищення якості прийнятих рішень на всіх рівнях управління. У зв'язку з цим в першій частині теоретичного розділу даної роботи розглядаються деякі питання побудови та проектування автоматизованих ІС (АІС).
Альтернативним підходом до канонічного проектування в даний час є реінжиніринг бізнес процесів, який базується на схожості інформаційних процесів (ІТ-архітектур) та загальних бізнес архітектур і полягає в інтеграції ІТ та бізнес процесів. Тому тут також коротко розглядається автоматизація проектування АІС (CASE - технологія), яка є одним з підходів до даної інтеграції.
Важливим аспектом розгляду розробки АІС є опис структури і функції забезпечують підсистем, відповідна таких компонентів як технічні, програмні та інформаційні засоби, інтегровані людським фактором. Інформаційне забезпечення АІС є засобом для вирішення наступних завдань:
- Однозначної і економічного подання інформації (на основі кодування об'єктів);
- Організації процедур аналізу та обробки інформації з урахуванням характеру зв'язку між об'єктами (на основі класифікації об'єктів);
- Організація взаємодії користувачів з системою на основі екранних форм для введення первинних даних в ЕОМ або виведення результатної інформації, структури інформаційної бази: вхідних-вихідних файлів, бази даних;
- Та інші.
Програмне забезпечення АІС може включати відомі операційні системи MS DOS, Windows та інші, системи програмування типу Паскаль, Сі, Бейсик і т. п. У зв'язку з цим у другій частині теоретичного розділу розглянуті основи програмування мовою Visual Basic for Application (VBA) в середовищі MS Office Excel. Робота закінчується програмуванням розроблених макетів екранних форм і їх апробацією.

1 ТЕОРЕТИЧНИЙ РОЗДІЛ
1.1.1 Обгрунтування вибору мови програмування
Кращою середовища програмування для створення інформаційного забезпечення в контурі будь АІС нашого бізнес - проекту можна вважати MS Office. Одним з найбільш важливих і корисних аспектів використання MS Office є автоматизація деяких процесів взаємодії іспользователя та додатків Office (Excel, Access, Word), які дозволяють вирішувати, практично, всі сучасні бізнес - завдання: від створення простих документів і звітів до повної автоматизації докуіментооборота з використанням систем управління БД. Це пов'язано з тим, що всі додатки Office підтримують мову програмування Basic for application (VBA). Найважливішим достоїнством є можливість об'єднати будь-які додатки MS Office для виконання однієї або кількох завдань.
Останнім часом все більш і більш зростає значущість розробки додатків на базі електронних таблиць Excel - продукту з високим ступенем програмованість через підтримку VBA.Такім чином, для розробників АІС важливими є наступні можливості використання VB в середовищі MS Excel:
1) Файлова структура. Орієнтація на багатолистові структуру дозволяє легко організовувати елементи програми і зберігати його в єдиному файлі;
2) VBA - це макромова, дозволяє створювати структуровані програми безпосередньо в Excel.
3) Excel дозволяє досить легко вставити в робочий лист різні елементи управління, наприклад, кнопки, поля зі списком, перемикачі. Можна також легко створювати діалогові вікна, які мають професійний зовнішній вигляд.
4) Для упрoщенія формул і обчислень можна за допомогою VBA створювати користувацькі функції робочих аркушів.
5) Є можливість вносити зміни в елементи меню, додавати в наявні меню нові елементи або створювати повністю нові меню.
У зв'язку з цим у теоретичному розділі поряд з питаннями розробки АІС, розглядаються також питання пов'язані з використанням VBA і MS Excel.
1.2 Введення в Visual Basic For Application
Програмування в Excel, в основному, зводиться до управління об'єктами. Це завдання виконується за допомогою інструкцій, введених мовою, зрозумілою Excel. Розглянемо далі цю мову, а також об'єкти, включені в Excel.
Історія мови BASIC
Багато досвідчені програмісти не сприймають ідею програмування наВА81Свсерьез. Сама назва (абревіатура від Beginner's ЛП-purpose Symbolic Instruction Code-універсальний символічний мова інструкцій для початківців) припускає, що це не професійна мова.
Дійсно, BASIC був розроблений на початку 1960-х років і задумувався як наочний засіб викладання методів програмування студентам коледжів. BASIC досить швидко набув великої популярності, і зараз підтримується у багатьох типах комп'ютерів.
З роками BASIC розвивався і поліпшувався. Наприклад, у багатьох ранніх версіях він був інтерпретованою мовою. Кожен рядок перед виконанням інтерпретувалася, чим і була обумовлена ​​повільна швидкість обробки коду. У більшості сучасних варіантів мови BASIC програма компілюється, і в результаті виконання програми значно прискорилося, а переміщувані програми покращилася.
BASIC став набагато популярніше в 1991 році, коли компанія Microsoft випустила Visual Basic для Windows (на даний момент існує в версії 6.0). Цей продукт полегшив масову розробку самостійних додатків для Windows. У Visual Basic мало спільного з попередніми версіями BASIC, але останній являє собою основу, на якій побудований VBA. Огляд VBA Excel 5 - це перше застосування на ринку, в якому з'явився Visual Basic for Applications (VBA). VBA вважається стандартною мовою написання сценаріїв для додатків Microsoft, і в даний час входить до складу всіх програм Office 2002 і навіть додатків інших компаній. Отже, оволодівши VBA для Excel, ви зможете відразу перейти до створення макросів для інших програмних продуктів Microsoft (так само, як і додатків інших компаній). Більше того, ви зможете створювати повноцінні програмні продукти, одночасно використовують функції самих різних додатків.
Об'єктні моделі
Секрет використання VBA полягає в правильному розумінні об'єктної моделі В кожному окремому додатку. Слід відзначити. VBA всього лише управляє об'єктами, а у кожного програмного продукту (Excel. Word. Access. PowerPoint і т.п.) своя об'єктна модель. Додатком можна керувати програмним чином тільки з помощьюоб'ектов, які представлені в цьому додатку.
Наприклад, в об'єктній моделі Excel представлено кілька потужних об'єктів аналізу даних, наприклад, робочі листи, діаграми, зведені таблиці, сценарії, а також численні математичні, фінансові, інженерні та загальні функції. За допомогою VBA ви можете працювати з цими об'єктами і розробляти автоматизовані процедури.
Порівняння VBA і XLM
До появи Excel 5 розробниками використовувався потужний (але складний для розуміння) мова макросів під назвою XLM. Пізніші версії Excel все ще виконують макроси XLM, але, починаючи з Excel 97, користувачі не мають можливості записувати макроси на мові XI.M. Для сучасних розробок використовується виключно VBA.
Основи VBA
Дії у VBA здійснюються в результаті виконання коду VBA. • Ви створюєте (або записуєте) програму VBA. яка зберігається в модулі VBA.
• Модуль VBA складається з процедур.
Процедура, по суті, являє собою елемент комп'ютерної програми, що виконує певну дію. Нижче наведено приклад простої процедури під назвою Test: вона обчислює суму, а потім відображає результат у вікні повідомлень:
Sub Test ()
Sum = 1 + 1
MsgBox "Відповідь:" & Sum
End Sub
• Крім процедур Sub. в модулі VBA може використовуватися другий тип процедур - функції.
Процедура функції повертає одне значення (або масиву). Функція може бути викликана з іншої процедури VBA або використовуватися у формулі робочого аркуша. Далі наведено приклад функції з назвою AddTwo:
Function AddTwo (argl, arg2)
AddTwo = argl + arg2
End Function
• VBA управляє об'єктами, які представлені запускає додатком (в. Даному випадку Excel).
Excel дозволяє керувати більш, ніж ста класами об'єктів, включаючи робочу книгу, робочий лист, діапазон комірок робочого аркуша, діаграму і намальований прямокутник. У вашому розпорядженні знаходяться і інші об'єкти, з якими можна працювати в VBA.
• Класи об'єктів організовані в ієрархічну структуру.
Об'єкти можуть бути контейнерами для інших об'єктів. Наприклад, Excel - це об'єкт під назвою Application, він містить інші об'єкти, наприклад. Workbook (Робоча книга). Об'єкт Workbook може складатися з інших об'єктів, наприклад. Worksheet (Робочий лист) і С h а г t (Діаграма). Об'єкт Worksheet також містить об'єкти, наприклад. Range (Діапазон), Р iv про t Т ab 1 е (Зведена таблиця) і т.д. Організацію таких об'єктів називають об'єктною моделлю Excel.
Однакові об'єкти формують колекцію. Наприклад, колекція Worksheets складається з усіх робочих аркушів конкретної робочої книги, а колекція CommandBars - з усіх об'єктів CommandBar. Колекції - це об'єкти в собі.
При посиланні на об'єкт, вкладений в інший об'єкт, положення в ієрархічній структурі об'єктної моделі задається за допомогою точки-роздільника. Наприклад, на робочу книгу з назвою Книга 1.xls в можна послатися наступним чином:
Application.Workbooks ("Кніга1.xls") Це зсипання на робочу книгу Кніга1.xls в колекції Workbooks. Колекція Workbooks знаходиться в об'єкті Application. Переходячи на наступний рівень, ви можете послатися на лист Аркуш1 в книзі Книга 1. Xls:
Application.Workbooks ("Книга 1. Xls"). Worksheets ("Лист1") Перейдіть на один рівень нижче, після чого необхідно послатися на окрему клітинку:
Application.Workbooks ("Кніга1.xls"). Worksheets ("Лист1"). Range ("A")
При опущеною посиланням на об'єкт Excel за замовчуванням використовуються активні об'єкти. Якщо книга Аркуш1 - активна робоча книга, то попереднє посилання можна спростити:
Worksheets ("Лист1"). Range ("Al") Якщо ви знаєте, що лист Лист 1 - активний, то посилання можна спростити ще більше:
Range ("Al")
Об'єкти мають властивості.
Властивість можна вважати параметром та налаштуванням об'єкта. Наприклад, об'єкт діапазону має такі властивості, як Value (Значення) і Name (Ім'я), Об'єкт діаграми має такі властивості, як Н as Т i 11 е (Тема) і Туре (Тип). Ви маєте право використовувати VBA, щоб задати властивості об'єктів і їх змінити.
Властивості в програмному коді відділяються від назви об'єкта точкою. Наприклад, ви можете послатися на значення в комірці А1 листа Аркуш1 наступним чином: Worksheets ("Лист1"). Range ("Al"). Value
Робоча книга Excel є об'єктом, але вона також містить інші об'єкти, наприклад, робочі листи, діаграми, модулі VBA і т.д. Більше того, кожен об'єкт в робочій книзі може містити власні об'єкти. Наприклад, об'єкт worksheet (Робочий лист) включає об'єкти Range (Діапазон), pivottrable (Зведена таблиця), Shape (Форма) і т.д.
Крім властивостей, об'єкти Excel також розпорядженні методи, які виконують операції над об'єктом. Наприклад, метод clearContents, видаляє вміст об'єкта Range.
У Excel методи іноді використовуються для зміни властивостей об'єкта. Метод ciearContents
об'єкта Range змінює властивість Value об'єкта Range.
У VBA існує можливість писати процедури для управління об'єктами Excel.
Ви маєте право присвоювати значення змінним VBA. Змінну можна вважати константою, яка використовується для зберігання конкретного значення. Щоб присвоїти значення клітинки А1 листа Аркуш1 змінної з назвою Interest, використовуйте наступний оператор VBA:
• виконуються СУБД функції: інформаційні - організація зберігання інформації та доступу до неї та операційні функції, пов'язані з обробкою інформації;
• сфера можливого застосування СУБД: універсальне використання і спеціалізоване.
При виконанні наступної операції здійснюється «Вибір методів і засобів проектування програмного забезпечення системи», який напряму залежить від обраної технології проектування. У сукупність методів проектування, використовуваних при канонічному підході, входять такі, як метод структурного проектування, модульного проектування та ін Основними чинниками, що впливають на вибір методів, є їх сумісність, скорочення часу і вартісних витрат на проектування, отримання якісного продукту, який був би зручний для подальшої експлуатації та супроводу.
Виконання всіх цих операцій завершується складанням техніко-економічного обгрунтування (ТЕО) і формуванням технічного завдання (ТЗ). Метою розробки ТЕІ проекту ІС є оцінка основних параметрів обмежують проект ІС, обгрунтування вибору та оцінка основних проектних рішень з окремих компонентів проекту. При цьому розрізняють організаційні параметри, що характеризують способи організації процесів перетворення інформації в системі, інформаційні та економічні параметри, що характеризують витрати на створення і експлуатацію системи, економію її експлуатації.
До інформаційних параметрів належать такі, як достовірність, періодичність збору, форма подання, періодичність обробки інформації і т. д.
До економічних параметрів ІС відносяться: показники річного економічного ефекту, коефіцієнта ефективності витрат і т.п.
Параметризація дозволяє визначити вимоги до розроблюваної системі, оцінити існуючу ІВ, придатність типових рішень, вибрати проектні рішення відповідно до вимог, висунутими до ІС. До основних компонентів ТЕО відносяться:
• характеристика вихідних даних про предметну область;
• обгрунтування мети створення ІС;
• обгрунтування автоматизуються підрозділів, комплексу автоматизованих завдань, вибору комплексу технічних засобів, програмного та інформаційного забезпечення;
• розробка переліку організаційно-технічних заходів з проектування системи;
• розрахунок та обгрунтування ефективності обраного проекту;
• висновки про технічний рівень проекту та можливості подальших розробок.
У предметної області, як правило, розглядається моделі вихідної системи (об'єкта). Наприклад, моделі роботи організації створюються у двох видах:
• модель «як є» («as-is»)-відображає існуючі в організації бізнес-процеси;
• модель "як повинно бути» («to-be»)-відображає необхідні зміни бізнес-процесів з урахуванням впровадження ІС.
На основі ТЕО розробляються основні вимоги до майбутнього проекту ЕІС і складається «Технічне завдання» згідно з ГОСТ 34.602 - 89 «Технічне завдання на створення автоматизованої системи», до складу якого входять такі основні розділи.
1. У розділі «Загальні відомості про проект» вказують: повне найменування системи, код системи, код договору, найменування підприємства-розробника.
2. Розділ опису «Призначення, цілі створення системи» складається з двох підрозділів:
в підрозділі «Призначення системи» даються вид діяльності, що автоматизується та перелік об'єктів автоматизації, на яких передбачається її використовувати;
в підрозділі «Мета створення системи» зазначаються найменування і необхідні значення технічних та інших показників об'єкта автоматизації ІС.
Обмежившись цим переліком, відмітимо, що в склад ТЗ при наявності затверджених методик включають додатки, що містять розрахунки економічної ефективності системи та оцінку науково-технічного рівня системи.
Т.О. в результаті передпроектного обстеження розробляється такі документи як ТЕО, ТЗ та ескізний проект (у разі необхідності).
В ТЕО чітко сформульовано, що буде мати замовник, якщо погодиться фінансувати проект, коли він отримає готовий продукт (або графік виконання робіт) і скільки це буде коштувати (для крупних проектів повинен бути складений графік фінансування на різних етапах робіт). У документі бажано відобразити не тільки витрати, але й вигоди проекту, наприклад, час окупності проекту, очікуваний економічний ефект (якщо його вдається оцінити).
Технічне завдання - це документ, що визначає цілі, вимоги та основні вихідні дані, необхідні для розробки автоматизованої системи управління.
При розробці технічного завдання необхідно вирішити такі завдання:
встановити загальну мету створення ІС, визначити склад підсистем і функціональних завдань;
• розробити та обгрунтувати вимоги, які пред'являються до підсистем;
• розробити та обгрунтувати вимоги, які пред'являються до інформаційної бази, математичного й програмного забезпечення, комплексу технічних засобів (включаючи засоби зв'язку і передачі даних);
• встановити загальні вимоги до проектованої системи;
• визначити перелік завдань створення системи та виконавців;
• визначити етапи створення системи та терміни їх виконання;
• провести попередній розрахунок витрат на створення системи і визначити рівень економічної ефективності її впровадження.
Ескізний проект передбачає розробку попередніх проектних рішень по системі та її частинах.
Виконання стадії ескізного проектування не є строго обов'язковою. Якщо основні проектні рішення визначені раніше або досить очевидні для конкретної ІС та об'єкта автоматизації, то ця стадія може бути виключена із загальної послідовності робіт.
Зміст ескізного проекту задається в ТЗ на систему. Як правило, на етапі ескізного проектування визначаються:
• функції ІС;
• функції підсистем, їх цілі і очікуваний ефект від впровадження;
• склад комплексів завдань і окремих завдань;
• концепція інформаційної бази та її укрупнена структура:
• функції системи управління базою даних:
• склад обчислювальної системи та інших технічних засобів;
• функції і параметри основних програмних засобів.
За результатами виконаної роботи оформляється, узгоджується і затверджується документація в обсязі, необхідному для опису повної сукупності проектних рішень і достатньому для подальшого виконання робіт по створенню системи.
Склад і зміст робіт на стадії техно-робочого проектування
Роботи на стадії «Техно-робочого проектування» виконуються на основі затвердженого «Технічного завдання». Розробляються основні положення проектованої системи, принципи її функціонування та взаємодії з іншими системами; визначається структура системи; розробляються проектні рішення по забезпечує частин системи.
На стадії «Техно-робітника» проектування »виконуються два етапи робіт: технічне і робоче проектування. На першому з них - «Технічне проектування» здійснюється логічна опрацювання функціональної та системної архітектури ЕІС, в процесі якої будується кілька варіантів всіх компонентів системи; проводиться оцінка варіантів за показниками: вартості, трудомісткості, достовірності одержуваних результатів, і складається «Технічний проект» системи.
Всі роботи першого етапу можна розбити на дві групи. До першої групи належить розробка загальносистемних проектних рішень, в тому числі:
• розробка загальносистемних положень з ЕІС;
• зміна організаційної структури;
• визначення функціональної структури;
• розробка проектно-кошторисної документації та розрахунок економічної ефективності системи;
• розробка плану заходів щодо впровадження ІС.
Найбільш принциповою в даному комплексі робіт є розробка функціональної архітектури ІС на базі принципів виділення функціональних підсистем (модулів, контурів): предметного, функціонального, змішаного (предметно-функціонального і проблемного.
До другої групи робіт, що виконуються на етапі технічного проектування, відносяться розробки локальних проектних рішень, до числа яких відносять наступні операції:
• розробка «Постановки завдання» для задач, що входять до складу кожної функціональної підсистеми, що включає основні компоненти опису завдання і служить підставою для розробки проектних рішень по завданню;
• проектування форм вхідних і вихідних документів, системи ведення документів і макетів екранних форм документів;
• проектування класифікаторів економічної інформації та системи ведення класифікаторів;
• розробка структури вхідних та вихідних повідомлень;
• проектування складу та структур файлів інформаційної бази;
• проектування внемашинной і внутримашинной технології вирішення кожного завдання;
• уточнення складу технічних засобів.
Основним компонентом локальних проектних рішень, що є базою для розробки інформаційного, програмного та технологічного забезпечення для кожного завдання, є «Постановка завдання». Цей документ містить три складові частини:
• характеристику завдання;
• опис вихідної інформації;
• опис вхідної інформації.
До складу розділу «Характеристика задачі» входять наступні компоненти: опис мети; призначення вирішення конкретного завдання перелік функцій і процесів, що реалізуються розв'язуваної завданням характеристика організаційної та техніко-економічної сутності задачі, обгрунтування доцільності автоматизації вирішення завдання; вказівку переліку об'єктів, для яких вирішується завдання; опис процедур вирішення завдання; вказівку періодичності виконання завдання і вимог до організації збору первинних даних; опис зв'язків з іншими завданнями.
Під метою автоматизації вирішення завдання мається на увазі отримання певних значень економічного ефекту в сфері управління будь-якими процесами системи або зниження вартісних і трудових витрат на обробку інформації, поліпшення якості та достовірності одержуваної інформації, підвищення оперативності її обробки і т.д., тобто отримання непрямого і прямого ефекту від впровадження даного завдання.
Опис алгоритму рішення задачі включає формалізований опис вхідних і результатних показників та перелік формул розрахунку результатних показників у разі виконання завдання прямим методом рахунку або опис математичної моделі, економіко-математичного методу, застосовуваного для її реалізації, та переліку послідовних кроків виконання розрахунків і т.д.
Далі для кожного завдання розробляються всі компоненти інформаційного, технічного, математичного і лінгвістичного забезпечення, а також деякі компоненти програмного забезпечення.
Результатом робіт на даній стадії є затверджений «Технічний проект», склад і зміст якого регламентуються стандартом (ГОСТ 34.201-89).
Таким чином на основі ТЗ (і ескізного проекту) розробляється технічний проект ІС.
Технічний проект системи - це технічна документація, яка містить загальносистемні проектні рішення, алгоритми розв'язання задач, а також оцінку економічної ефективності автоматизованої системи управління і перелік заходів з підготовки об'єкта до впровадження.
На другому етапі - «Робочому проектуванні» здійснюється технічна реалізація обраних найкращих варіантів і розробляється документація «Робочий проект». Найбільш відповідальною роботою, що виконується на цьому етапі, є «Кодування та складання програмної документації. До її складу входять такі компоненти:
• опис програм;
• специфікація програм;
• тексти програм;
контрольні приклади;
• інструкції для системного програміста, оператора та користувача.
Велику роль у справі ефективного використання розробленого проекту ЕІС грає якісна технологічна документація, що входить до складу «Робочого проекту». Ця частина проекту призначена для використання фахівцями у своїй діяльності на кожному автоматизованому робочому місці.
Таким чином, на стадії «робоча документація» здійснюється створення програмного продукту і розробку всієї супроводжуючої документації.
Склад і зміст робіт на стадіях впровадження, експлуатації та супроводу проекту
На стадіях «Впровадження проекту» проводиться підготовка та поступове освоєння розробленої проектної документації ІС замовниками системи. У процесі виконання робіт на цій стадії здійснюється виявлення приватних і системних принципових недоробок у пропонованому проектному рішенні.
Впровадження може здійснюватися з використанням таких методів:
• послідовного методу, коли поступово впроваджується одна підсистема за одною і завдання слідують одна за одною;
• паралельного методу, при якому всі завдання впроваджуються у всіх підсистемах одночасно;
• змішаного підходу, згідно з яким проектувальники, запровадивши кілька підсистем першим методом і накопичивши досвід, приступають до паралельного впровадження інших.
Недоліком першого підходу є збільшення тривалості впровадження, що призводить до зростання вартості проекту. При використанні другого підходу скорочується час впровадження, але виникає можливість пропуску помилок у проектній документації тому найчастіше за все використовують змішаний метод впровадження проекту ІС. Впровадження проекту здійснюється протягом трьох етапів якими є:
• підготовка об'єкта до впровадження;
• дослідне впровадження;
• здача проекту в промислову експлуатацію.
Перший етап-"Підготовка об'єкта до впровадження». На цьому етапі здійснюються такі операції;
• змінюється організаційна структура об'єкта (підприємства);
• набираються кадри відповідної кваліфікації в областях обробки інформації, експлуатації системи і супроводу проектної документації;
• здійснюється установка каналів зв'язку: проводиться розробка нових документів і класифікаторів;
• здійснюється створення файлів інформаційної бази з нормативно-довідковою інформацією і ін
На вхід цього етапу надходять компоненти «Технічного проекту» в частині «Плану заходів щодо впровадження», рішення з технічного та інформаційного забезпечення, технологічні та інструкційні матеріали «Робочого проекту». В результаті виконання етапу складається "Акт готовності об'єкта до впровадження» проекту ІС. Потім формується складу приймальної комісії, розробляється «Програма проведення дослідного впровадження» і видається «Наказ про початок досвідченого впровадження».
Другий етап - «Дослідне впровадження». На цьому етапі впроваджуються проекти кількох завдань про декілька підсистемах. У процесі дослідного впровадження виконуються наступні роботи:
• підготовка вихідних оперативних даних для задач, які
проходять дослідну експлуатацію;
• введення початкових даних в ЕОМ і виконання запланованого числа реалізації;
• аналіз вихідних даних на предмет наявності помилок.
У разі виявлення помилок здійснюються пошук їх причин та джерел, внесення корективів до програми, в технологію обробки інформації, в роботу технічних засобів, у вихідні оперативні дані і у файли з умовно-постійною інформацією. Крім того, виявляється некваліфікована робота операторів, що служить підставою для проведення комплексу заходів щодо поліпшення підготовки кадрів.
Після усунення помилок отримують «Акт про проведення досвідченого впровадження», який служить сигналом для початку виконання наступного етапу.
На третьому етапі - «Здача проекту в промислову експлуатацію» - використовують наступну сукупність документів:
• договірну документацію;
наказ на розробку ІС;
• ТЕО і ТЗ;
• виправлений техно-робочий проект;
наказ про початок промислового впровадження;
• програму проведення випробувань;
• вимоги до науково-технічному рівню проекту системи.
У процесі здачі проекту в промислову експлуатацію здійснюються такі роботи:
• перевірка відповідності виконаної роботи договірної документації за часом виконання, обсягом виконаної роботи і витрат грошових коштів;
• перевірка відповідності проектних рішень з ІВ вимогам ТЗ;
• перевірка відповідності проектної документації ГОСТам і ОСТів;
• перевірка технологічних процесів обробки даних по всіх завдань і підсистем;
• перевірка якостей функціонування інформаційної бази, оперативності та повноти відповідей на запити;
• виявлення локальних і системних помилок і їх виправлення.
Крім того, приймальна комісія визначає науково-технічний рівень проекту та можливості розширення проектних рішень за рахунок включення нових компонентів. В результаті виконання робіт на даному етапі здійснюється доопрацювання «техноробочого проекту» за рахунок виявлення системних і локальних помилок і складається «Акт здачі проекту в промислову експлуатацію».
На четвертій стадії - «Експлуатація та супровід проекту» - виконуються наступні процеси:
• експлуатація проекту;
• супровід та модернізація проекту.
На цій стадії вирішується питання про те, якими силами (персоналом об'єкта-замовника або організації-розробника) будуть здійснюватися експлуатація і супровід проекту, і в разі вибору другого варіанта полягає «Договір про супровід проекту».
У процесі виконання етапу «Експлуатація проекту» здійснюються виправлення у роботі всіх частин системи при виникненні збоїв, реєстрація цих випадків у журналах, відстеження техніко-економічних характеристик роботи системи і накопичення статистики про якість роботи всіх компонентів системи.
На етапі «Супровід та модернізація проекту» виконується аналіз зібраного статистичного матеріалу, а також відповідності параметрів роботи системи вимогам навколишнього середовища за допомогою створюваної для цих цілей комісії. Отримані результати дозволяють:
• зробити висновок про необхідність модернізації всього проекту або його частин;
• визначити обсяги доробок, терміни і вартість виконання цих робіт з метою отримання «Техно-робочого проекту», що пройшов модернізацію.
У разі виявлення факту морального старіння проекту комісією приймається рішення про доцільність проведення його утилізації або розробки нового проекту.
1.3.3 Автоматизоване проектування ІС (CASE-ТЕХНОЛОГІЯ)
Основні поняття і класифікація CASE-технологій
Термін CASE (Computer Aided System / Software Engineering) використовується в досить
широкому сенсі. Первинне значення терміна CASE, обмежений питаннями
автоматизації розробки лише програмного забезпечення, в даний час
набуло нового змісту, що охоплює процес розробки складних ІС у цілому.
З самого початку CASE-технології розвивалися з метою подолання обмежень при
використанні структурної методології проектування (складності розуміння, високої трудомісткості і вартості використання, труднощі внесення змін в проектні специфікації і т.д.) за рахунок її автоматизації та інтеграції підтримуючих засобів.
Таким чином, CASE-технології не можуть вважатися самостійними, вони лише забезпечують, як мінімум, високу ефективність їх застосування, а в деяких випадках і принципову можливість застосування відповідної методології. Більшість існуючих CASE-систем орієнтоване на автоматизацію проектування програмного забезпечення і засновано на методологіях структурного (в основному) або об'єктно-орієнтованого проектування та програмування, що використовують специфікації у вигляді діаграм або текстів для опису
системних вимог, зв'язків між моделями системи, динаміки поводження системи та архітектури програмних засобів. Останнім часом стали з'являтися CASE-системи, приділяють основну увагу проблемам специфікації і моделювання технічних засобів.
Переваги CASE-технології в порівнянні з традиційною технологією оригінальному проектування
зводяться до наступного:
- Поліпшення якості розроблюваного програмного забезпечення за рахунок засобів автоматичного
контролю і генерації;
- Можливість повторного використання компонентів розробки;
- Підтримування адаптивності і супроводу ІС;
- Зниження часу створення системи, що дозволяє на ранніх стадіях проектування отримати
прототип майбутні системи та оцінити його;
- Звільнення розробників від рутинної роботи з документування проекту, так як при цьому
використовується вбудований документатор;
- Можливість колективної розробки ЕІС в режимі реального часу.
CASE-технологія в рамках методології включає в себе методи, за допомогою яких на основі графічної нотації будуються діаграми, підтримувані інструментальної середовищем.
Методологія визначає кроки і етапність реалізації проекту, а також правила використання методів, за допомогою яких розробляється проект.
Метод - це процедура або техніка генерації описів компонентів ЕІС (наприклад, проектування
потоків і структур даних).
Нотація - відображення структури системи, елементів даних, етапів обробки за допомогою спеціальних графічних символів діаграм, а також опис проекту системи на формальних і природних мовах.
Інструментальні засоби CASE - спеціальні програми, які підтримують одну або декілька методологій аналізу та проектування ІС.
Графічні засоби моделювання предметної області дозволяють розробникам атоматізірованних ІС в наочному вигляді вивчати існуючу ІВ, перебудовувати їх у відповідність з поставленими цілями та наявними обмеженнями. Всі модифікації діаграм, виконуваних розробниками в інтерактивному (діалоговому) режимі, вводяться в словник даних, контролюються з загальносистемної точки зору і можуть використовуватися для подальшої генерації діючих функціональних додатків. У будь-який момент часу діаграми можуть бути роздруковані для включення в технічну документацію проекту.
Графічний редактор діаграм призначений для відображення в графічному вигляді в заданій нотації проектованої ЕІС. Він дозволяє виконувати наступні операції:
- Створювати елементи діаграм і взаємозв'язку між ними;
- Ставити описи елементів діаграм;
- Ставити описи зв'язків між елементами діаграм;
- Редагувати елементи діаграм, їх взаємозв'язку і опису.
Верифікатор діаграм служить для контролю правильності побудови діаграм в заданій методології
проектування ЕІС. Він виконує наступні функції:
- Моніторинг правильності побудови діаграм;
- Діагностику та видачу повідомлень про помилки;
- Виділення на діаграмі помилкових елементів.
Документатор проекту дозволяє отримувати інформацію про стан проекту у вигляді різних звітів.
Звіти можуть будуватися за кількома ознаками, наприклад за часом, автору, елементів діаграм, діаграмі або проекту в цілому.
Адміністратор проекту являє собою інструменти, необхідні для виконання наступних функції:
- Ініціалізації проекту;
- Завдання початкових параметрів проекту;
- Призначення і зміни прав доступу до елементів проекту;
- Моніторингу виконання проекту.
Сервіс є набір системних утиліт з обслуговування сховища. Дані утиліти виконують функції архівації даних, відновлення даних і створення нового сховища.
Найбільш трудомісткими етапами розробки ЕІС є етапи аналізу і проектування, тому CASE-системи як правило, призначені для автоматизації відстеження якості прийнятих проектних рішень та підготовки документації. При цьому велику роль відіграють методи візуального представлення інформації. Це передбачає побудову структурних чи інших діаграм у реальному масштабі часу, використання різній кольорової палітри, наскрізну перевірку синтаксичних правил.
Стратегія вибору CASE-систем для конкретного застосування залежить як від цілей і потреб самого проекту, так і від кваліфікації залучених до процесу проектування фахівців. У більшості випадків один засіб не може забезпечити всі потреби проекту. Розробники, як правило, застосовують набір засобів. Наприклад, один засіб найкращому чином підходить для аналізу, а інше-для проектування систем.
Залежно від підтримуваної методології проектування розрізняють CASE-системи функціонально структурно-орієнтовані та об'єктно-орієнтовані.
Найбільш відомими CASE-засобами для моделювання ділових процесів ставляться ERwin, BPwin, Silverrun,
Oracle Designer, Rational Rose та ін Основи функціональної можливості інструментальних засобів структурного
моделювання ділових процесів будуть розглянуті на прикладі CASE-засоби BPwin.
Моделювання в BPwin.
BPwin має досить простий і інтуїтивно зрозумілий інтерфейс користувача. При запуску BPwin за замовчуванням
з'являється основна панель інструментів, палітра інструментів (вид якої залежить від обраної нотації).
Модель в BPwin розглядається як сукупність робіт, кожна з яких оперує з деяким набором даних.
IDEF0 (Integration Definition for Function Modeling) - на початкових етапах створення ІС необхідно зрозуміти як працює організація, яку збираються автоматизувати. З точки зору функціональності систем найбільш зручним мовою моделювання бізнес-процесів (БП) є IDEF0, де БП представляється у вигляді набору взаємодіючих між собою функції-робіт, які забезпечуються інформаційними, людськими і виробничими ресурсами, що споживаються кожної функції.
Процес моделювання системи IDEFO починається зі створення контексной діаграми - діаграми найбільш абстрактного рівня опису системи в цілому (рис.5.1).
DFD (Data Flow Diagraming) - рух потоків інформації (документообігу) у системі. Діаграми DFD можуть доповнити те, що вже відображено в моделі IDEF0, оскільки вони описують потоки даних, дозволяючи простежити, яким чином відбувається
обмін інформацією між функціями всередині системи.
IDEF3 - аналіз БП з точки зору послідовності виконання робіт. За допомогою IDEF3 можна отримати ще більш точну картину ІС. Цей метод привертає увагу до черговості виконання подій. У IDEF3 вкладені елементи логіки, що дозволяє моделювати й аналізувати альтернативні сценарії розвитку бізнес-процесу.
Моделювання даних
Успіх будь-якої програми залежить від того, наскільки добре змодельована і розроблена БД (Б1), що ставить цю розробку в центр уваги.
БД створюється в кілька етапів, на кожному з яких необхідно погоджувати структуру даних із замовником і, що найважливіше, піддати створену структуру даних експертизі всередині групи, яка створює систему. Тому уявлення даних повинне бути простим і зрозумілим всім зацікавленим особам.
Розробка БД виконується за допомогою моделювання даних. Мета моделювання даних полягає в забезпеченні розробки ІС концептуальної схеми БД у формі однієї моделі або кількох локальних моделей, які відносно легко можуть бути відображені в будь-яку систему БД. Найбільш поширеним засобом моделювання даних (подання БД) є діаграма «сутність-зв'язок» (Entity-Relationship), яка також відома як ER-діаграма (або ERD).
ER-діаграми був прийнято за основу для створення стандарту IDEFIX. Попередній варіант цього стандарту був розроблений у військово-повітряних силах США і призначений для збільшення продуктивності при розробці комп'ютерних систем. У 1981 р. Цей стандарт був формалізований і опубліковано організацією ICAM (Integrated Computed Aided Manufacturing), і з тих пір є найбільш поширеним стандартом для створення моделей БД по всьому світу.
Базові поняття ERD
Сутність (Entity) - безліч екземплярів реальних або абстрактних об'єктів (людей, подій, станів, ідей, предметів та ін), які володіють загальними атрибутами або характеристиками. Будь-який об'єкт системи може бути представлений тільки однією сутністю, яка повинна бути унікальною ідентифікована. При цьому ім'я суті повинно відображати тип або клас об'єкта, а не його конкретний примірник (наприклад, АЕРОПОРТ, а не ВНУКОВО).
Кожна сутність повинна мати унікальний ідентифікатор. Кожен екземпляр сутності повинен однозначно ідентифікуватися і відрізнятися від всіх інших примірників даного типу сутності. Кожна сутність повинна володіти деякими властивостями:
- Мати унікальне ім'я; до одного й того ж імені повинна завжди застосуються одна і та ж інтерпретація; одна і та ж інтерпретація не може застосовуватися до різних імен, якщо тільки вони не є псевдонімами;
- Мати один або декілька атрибутів, які або належать сутності, або успадковуються через зв'язок;
- Мати один або декілька атрибутів, які однозначно ідентифікують кожний примірник сутності.
Кожна сутність може мати будь-якою кількістю зв'язків з іншими сутності моделі.
Зв'язок (Relationship) - пойменована асоціація між сутностями, значима для розглянутої предметної області. Зв'язок - це асоціація між сутностями, при якій кожен примірник однієї сутності асоційований з довільним (у тому числі нульовою) кількістю примірників другий суті, і навпаки.
Атрибут (Atribute) - будь-яка характеристика сутності, значима для розглянутої предметної області і призначена для кваліфікації, ідентифікації, класифікації, кількісної характеристики або вираження стану сутності. Атрибут представляє тип характеристик або властивостей, асоційованих з безліччю реальних або абстрактних об'єктів (людей, місць, подій, станів, ідей, предметів і т.д.). Примірник атрибута - це певна характеристика окремого елемента множини. Примірник атрибута визначається типом характеристики і її значенням, званим значенням атрибута. На діаграмі «сутність-зв'язок» атрибути асоціюються з конкретними сутностями. Таким чином, примірник сутності повинен володіти єдиним певним значенням для асоціативного атрибута.
Проектування БД за допомогою Erwin
Найбільш поширеними методами для побудови ERD є метод Баркера і мтод IDEF1.
Метод Баркера заснований на нотації, запропонованої автором, і використовується в case-засоби Oracle Designer.
Метод IDEF1 заснований на підході Чена і дозволяє будувати модель даних, еквівалентну реляційної моделі в третій нормальній формі. На основі вдосконалення методу EDEF1 створена його нова версія-IDETIX, розроблена з урахуванням таких вимог, як простота для вивчення і можливість автоматизації.
IDEFIX-діаграми використовуються у ряді поширених case-засобів, зокрема Erwin, Design / IDEF /
Функціональна модель бізнес-процесу, представлена ​​в BPwin, є основою для побудови моделі даних. Гарним інструментом для такої побудови є ErWin - засіб розробки структури БД. При цьому функціональний ERWinмодель використовується в якості проектної документації.
ERWin має зручний графіческтй Windows-інтерфейс, інструменти для побудови ER-діаграм, редактори для створення логічного та фізичного опису моделі даних, а також підтримку багатьох реляційних СУБД (в тому числі і Access) / ERWin підтримує два рівня представлення і моделювання - логічний і фізичний . На логічному рівні модель БД описується в термінах, найбільш наближених до предметної області, не визначаються типи даних, не мається на увазі використання конкретної СУБД. Типи даних, цільова СУБД і т.д. визначаються на фізичному рівні.
1.3.4 Реінженерінг бізнес-процесів та проектування корпоративної ІС
Сучасні підприємства (компанії, корпорації) мають складну структуру, обумовлену многоуровневностью підрозділів, великим числом кооперативних зв'язків з партнерами. При цьому зростає динамічність ділових або бізнес-процесів. Пов'язана з постійно мінливих потреб ринку. У цих цілях у менеджменті підприємств відбувається зміщення акцентів з управління окремими ресурсами і відповідну функціональними підрозділами на управління наскрізними бізнес-процесами, що зв'язує воєдино діяльність взаємопов'язаних підрозділів підприємства.
Основи реінженерінга бізнес-процесів на основі корпоративної ІС
Під бізнес-процесом (БП) будемо розуміти сукупність взаємопов'язаних операцій (робіт) з виготовлення готової продукції або виконання послуг на основі споживання ресурсів. При цьому в ході управління БП всі матеріальні, фінансові та інформаційні потоки розглядаються у взаємодії (рис. 3).

Рис.3. Матеріальні, фінансові та інформаційні потоки бізнес-процесу
У сукупності АІС важливе місце займають автоматизовані системи управління підприємствами, які називають корпоративними ИС, підкреслюючи їх спрямованість на вирішення широкого кола інформаційно-управлінських завдань.
Розробка корпоративних ІС, що вбудовуються нових ІТ в бізнес-процеси організація, призвело до виникнення так званих кіберкорпорацій (рис. 3.1), постійно і гнучко реконструює свій бізнес.
Це вбудовування є підставою для переосмислення і переконструктізаціі самих бізнес-процесів дають можливість поведінки інженеринг і реінженерінга бізнес-процесів (РБП).
Організаційний аналіз компанії (підприємства) на основі інженерінгових підходу проводиться за певною схемою з допомогою повної бізнес-моделі компанії. Остання розглядається як цільова, відкрита, соціально-економічна система, що належить ієрархічної сукупності зовнішніх підсистем (ринок, державні установи тощо) і внутрішніх підсистем (відділи, цехи, бригади тощо).
Можливості компанії визначаються характеристиками її структурних підрозділів та організацією їх взаємодії, що призводить до побудови бізнес-моделі підприємства через опис моделей взаємодії із зовнішнім середовищем, тобто до визначення місії компанії.
Капітал корпорації


Бізнес-платформа
корпорації
Місія підприємства, бізнес-стратегія, ринки, технологія основного виробництва


ІВ як
основна
дійству
Співробітники (директор, менеджер, консультант і ін)
Бізнес-архітектура (програми випуску конкретних товарів і надання послуг, оргструктури, процеси управління, стимули і ін)
ІТ-платформи та ІТ-архітектура, в тому числі:
АРМи співробітників (функції: ведення обліку, довідки, документообіг, підтримка прийняття рішень, планування, доступ до всієї потрібної інформації), забезпечення АРМів: БД, мережі, сервери та інші компоненти ІТ-архітектури
ющая
частина
кіберкор
корпорації
Рис. 4. Тришарова схема сучасного підприємства - «кіберкорпораціі»
Місія - це по-перше, діяльність, що здійснюється підприємством для того, щоб виконати функції, для яких воно було засновано, - представлення замовникам продукту або послуг. По-друге, - механізм, за допомогою якого підприємство реалізує свої цілі і завдання.
Визначення місії дозволяє сформувати дерево цілей компанії - ієрархічні списки уточнення і деталізації місії.
При цьому компанія може зайняти в партнерській ланцюжку створюваних цінностей оптимальне місце, де її можливості і потенціал будуть використовуватися найкращим чином. Це дає можливість сформувати бізнес-потенціал компанії - набір видів комерційної діяльності, спрямованої на задоволення потреб сегментів ринку.
Бізнес-потенціал, у свою чергу, визначає функціональна компанія - перелік бізнес-функцій, функцій менеджменту і функцій забезпечення, необхідних для підтримання на регулярній основі зазначених видів комерційної діяльності.
Проектування таких ІС (раніше обумовлених у вітчизняній практиці як АСУП або ОАСУ) завжди містило декларації про включення людини в ці системи. Якщо для деякої інформаційно-довідкової системи загального призначення її користувач міг (нехай з натяжкою) виступати як елемент, зовнішній по відношенню до системи, то розглядаються ІС по своїй суті - людино-машинні інформаційно-керуючі системи.
Тепер, коли в центр бізнес-інженеринг ставиться тимчасова підтримка, посилення інформаційних та аналітичних можливостей діяльності кожного працівника, яке або відділення ІС від функціонування підприємства в цілому стає неприйнятним. У силу цього, в процесах проектування доцільно вважати, сто корпоративна ИС становить інформаційно-керуючу систему, що включає бізнес архітектуру підприємства, його персонал, використовувану ІТ-архітектуру, і є діючою частиною кіберкорпораціі.
Це положення дозволяє точніше визначити розширюються межі корпоративної ІС. Слід виходити з того, що у вигляді ІВ проектується частина підприємства, яка безпосередньо здійснює «бізнес», тобто організаційно-виробничу діяльність.
З урахуванням цього, в більш широкому сенсі, нове системне проектування (НСП) є методологією з'єднання постійного бізнес-реінженерінга і нових інформаційних технологій (ІТ).
Згідно з визначенням М. Хаммера і Д. Гемпі, внесли значний внесок у НВВ, реінженерінг бізнес-процесів (BPR-Business process reenginering) визначається як «фундаментальне переосмислення і радикальне перепроектування БЖ для досягнення корінних поліпшень в основних показниках діяльності підприємства».
Метою реінженерінга бізнес-процесів (РБП) є системна реорганізація матеріальних, фінансових та інформаційних потоків, спрямована на спрощення організаційної структури, перерозподіл і мінімізацію використання різних ресурсів, скорочення термінів реалізації потреб клієнтів, підвищення якості їх обслуговування.
Для компаній з високим ступенем диверсифікації бізнесу, різноманіттям партнерських зв'язків реінженерінг бізнес-процесів забезпечує вирішення наступних завдань:
- Визначення оптимальної послідовності виконуваних функцій, яке призводить до скорочення тривалості циклу виготовлення і продажу товарів і послуг, обслуговування клієнтів, наслідком чого служать підвищення оборотності капіталу і зростання всіх економічних показників фірми;
- Оптимізація використання ресурсів у різних бізнес-процесах, в результаті якої мінімізуються витрати і забезпечується оптимальне поєднання різних видів діяльності;
- Побудова адаптивних бізнес-процесів, націлених на швидку адаптацію до змін потреб кінцевих споживачів продукції, виробничих технологій, поведінка конкурентів на ринку і, отже, підвищення якості обслуговування клієнтів в умовах динамічності зовнішнього середовища;
- Визначення раціональних схем взаємодії з партнерами і клієнтами, і, як наслідок, зростання прибутку, оптимізація фінансових потоків.
Інжиніринг бізнес-процесів включає в себе реінженерінг бізнес-процесів, що проводиться з певною періодичністю, наприклад один раз на 5-7 років, і подальше безперервне покращення бізнес-процесів шляхом їх адаптації до мінливого зовнішнього середовища.
Інжиніринг бізнес-процесів виконується на основі застосування інженерних методів і сучасних програмних інструментальних засобів моделювання бізнес-процесів спільними командами фахівців компанії і консалтингової фірми.
Відповідно до визначення Є. Г. Ойхмена і Е. В. Попова:
«Реінженерінг бізнесу передбачає новий спосіб мислення - погляд на побудову компанії як на інженерну діяльність. Компанія або бізнес розглядається як щось, що може бути побудоване, спроектовано або перепроектовано відповідно до інженерними принципами ».
Реінженерінг бізнес-процесів не можна ототожнювати з вирішенням таких завдань, як автоматизація процесів обробки інформації, реінженерінг програмного забезпечення, реорганізація організаційної структури, поліпшення якості продукції та послуг, які можуть вирішуватися самостійно і незалежно один від одного. Разом з тим передбачається їх обов'язкове комплексне рішення при інжинірингу бізнес-процесів.
Реінженерінг бізнес-процесів можливий тільки на основі інтегрованих корпоративних інформаційних систем, які забезпечують підтримку управління діловими процесами на всіх рівнях. На відміну від канонічного підходу до автоматизації окремих функцій управління у вигляді локальних АРМів, що не змінюють існуючу технологію управління, використання корпоративних інформаційних систем передбачає трансформацію системи управління на основі концепції автоматизації управління наскрізними бізнес-процесами. Причому адаптація структури ІС до змін потреб системи управління має бути безперервною.
У цілому, для розуміння взаємодії бізнес-структур та ІТ В. Меллінг описав модель Дж. Хендерсона (мал. 5). У цій моделі визначено:
- Основна бізнес-платформа - це набір стратегій, ринків, приписів, технологій продуктів і ресурсів, обраних підприємством як відповідний поставленим цілям;
Основна інформаційна платформа
Основна бізнес-платформа
Дано
Бізнес-архітектура:
- Товари та послуги
- Організація
- Управління та обробка
- Розподіл ресурсів
- Культура, цінності, нагороди
Інформаційна архітектура:
- Додатки
- Дані і мережа
- Стандарти та інтерфейси
- Вміння і організація
- Управління та обробка


Приводиться до
Рис.5. Модель Дж. Хендерсона (27)
- Бізнес-архітектура - набір товарів і послуг, організаційних структур, процесів управління, розподілу ресурсів, цінностей і стимулів, який є необхідним для впровадження основний бізнес-платформи;
- Основна ІТ-платформа - ряд адекватних комп'ютерних технологій, які можуть бути доступні підприємству, і способи, якими ці технології можуть бути використані для підвищення конкурентоспроможності;
- ІТ-архітектура - набір певних архітектур та продуктів, обраний для реалізації основної ІТ-платформи, а також інфраструктури підтримки, рівні кваліфікації, процеси прийняття рішень та адміністративні механізми, використовувані для розгортання цих архітектур.
Грунтуючись на цій моделі, можна зробити наступні висновки.
1. Існує двонаправлене вплив основних бізнес-процесів та ІТ-платформ.
2. Якщо основна бізнес-або ІТ-платформа змінюється, то малоймовірно, що відповідна успадковується ІТ-архітектура зберегтися.
3. Відповідність між бізнес-або ІТ-архітектурою є вирішальним чинником успіху, але на досягнення цього успіху може піти чимало часу.

2 ЕКСПЕРИМЕНТАЛЬНИЙ РОЗДІЛ
2.1 Формулювання задачі
У цьому розділі ми розглянемо досить цікаву розробку, що дозволяє автоматизувати процес складання розкладу занять у навчальному закладі (це може бути вуз, коледж, школа та ін.) Фактично ми спробуємо побудувати інформаційну систему для ефективного управління ресурсами. При цьому основним ресурсом буде фонд аудиторій, де ми повинні організувати навчальний процес, а в поняття управління вкладається створення різноманітних сервісних функцій для користувача, необхідних йому при складанні розкладу навчальних занять, наприклад: створення інтелектуальних форм для введення даних, подання наявної інформації у вигляді різноманітних звітів, зручні можливості коригування вже наявної інформації.
Як ви побачите, рішення розглянутої задачі приводить до розробки складного управління інформаційною базою. Метою управління є оптимізація розкладу навчальних занять з групами учнів, по фонду аудиторій і по викладачах. У той же час у змісті глави наводиться докладний коментар всіх основних програмних конструкцій.
Автоматизована книга включає в себе безліч листів, електронних форм введення і різноманітних звітів. Розроблені алгоритми дозволяють користувачеві виключати помилки і приймати правильні рішення при складанні розкладу занять та підборі аудиторій.
Функціональні можливості книги розраховані на різні категорії користувачів. У зв'язку з тим, що всі читачі книги знайомі з навчальним процесом по школі, коледжу або вузу, наведені нижче основні сервісні можливості розробки повинні бути зрозумілі:
1) введення заявок на проведення навчальних занять за допомогою електронної форми;
2) підбір вільних (близьких по місткості) аудиторій для занять;
3) автоматичний підбір аудиторії при проведенні занять з однієї дисципліни в декількох групах (в одного викладача);
4) автоматична підготовка друкованої форми розкладу по групах і потокам на базі введених заявок;
5) контроль відповідності числа студентів та місткості аудиторій з точки зору більш ефективного використання фонду аудиторій;
6) можливість швидкого отримання інформації про вільне фонді аудиторій;
7) зручна можливість коригування розкладу (у тому числі переказ занять з одних аудиторій в інші);
8) отримання різних звітів на основі інформації, що міститься в заявках
2.1.1 Вхідні дані
Введення початкової інформації
Зрозуміло, що розглянута розробка потребує деякої початкової інформації - про групи, фонді аудиторій і т. д. Фактично необхідні довідники по групах, аудиторій, викладачам і т.д. Такі дані заносяться на другий аркуш книги; один з варіантів його заповнення представлений на рис . 6.1.
Тут у стовпці А і В потрібно ввести інформацію про наявні аудиторіях (при цьому в перший стовпець заноситься номер аудиторії, а в другій - кількість місць в ній). Важливим моментом є те, що інформація по аудиторіях повинна вводитися в порядку зростання їх місткості. Надалі це забезпечить підбір класів, максимально близьких за кількістю місць до кількості студентів.
У стовпець С слід занести номери навчальних тижнів у семестрі (нумерація тижнів достатньо широко поширена в навчальних закладах).
У стовпці D розташовуються навчальні дні протягом тижня, а стовпець Е відводиться для часу початку і закінчення занять. Так, у другому рядку цього стовпця відображається час початку першого заняття, в третьому рядку - початок другого заняття і т. д. Самі заняття можуть бути вартовими та двогодинними (пари). Починаючи з 21-го рядка (того ж стовпця Е) розміщується час закінчення занять (відповідно, час закінчення першого заняття, потім другого і т. д.). Ця інформація в подальшому буде потрібно для звіту за розкладом (у ньому якраз вказується час початку і закінчення занять).
У наступних стовпцях розташовуються інші списки: заявники (це можуть бути назви факультетів або прізвища керівників навчальних програм), потім - викладачі, групи і потоки (із зазначенням кількості учнів). Кількість учнів потрібно для підбору близькою по місткості аудиторії. В останній колонці розташовуються назви навчальних дисциплін.
Примітка
Порожніх осередків всередині списків розглянутих даних бути не повинно. Порожня клітинка у стовпці для всіх наведених далі процедур є індикатором того, що нижче цього осередку даних вже немає.
Таким чином, другий аркуш книги являє собою сукупність вихідних даних для роботи програми складання розкладу і повинен заповнюватися в першу чергу. Всі розглянуті далі процедури використовують цю початкову інформацію.
Традиційно в наших розробках на першому аркуші робочої книги розташовуються елементи управління, пов'язані з основними діями користувача, і тут також не буде винятку.
Основний зміст першого аркуша - реєстрація заявок на проведення навчальних занять та аудиторій, які для цих занять виділяються. У верхній частині аркуша розташовуються елементи управління (ця область виділена чорною заливкою). Про ці елементи ми поговоримо пізніше, але вже з назв, видимих ​​на рис. 6.2, зрозумілі їхні функції.
Подивимося тепер на інформацію, розташовану, починаючи з четвертого рядка аркуша (третя рядок відводиться для заголовків стовпців). Тут кожен рядок містить заявку на проведення певного заняття - нова заявка вводиться в чергову вільну рядок на цьому аркуші.
При цьому інформацію за заявкою умовно можна розділити на дві категорії:
1) початкова інформація про заняття (номер, заявник, викладач, день, час, група, кількість студентів у групі, назва дисципліни та номери навчальних тижнів, коли заняття повинні проводитися);
2) інформація про обслуговування даної заявки (обслужена вона і номер аудиторії, вибраної для проведення занять за заявкою).
Алгоритм підбору аудиторії становить важливу змістовну частину в виконаної розробки. Тут враховується багато чинників - наявність групових (для декількох груп чи потоків) лекцій, наявність послідовних i часу занять в групі (у цьому випадку підбирається одна аудиторія - виключення переходів з однієї кімнати в іншу) і ряд інших чинників.
Так, у кожному рядку стовпці G і Н відводяться для запису інформації обслуговуванні заявки (підібраною для неї аудиторії). І якщо аудитор підібрана, то в стовпець G програмно записується слово "так", а в наступний стовпець вписується номер аудиторії.
Фактично, інформація на першому аркуші представляє собою деяку базу даних. Стовпець Номер дозволяє ввести для кожної заявки пояснюють числової або текстовий номер. При цьому для певного блоку заявок якщо буде потрібно, можна вказати один і той же номер. Номер заявки визначає її унікальність, а належність заявки до певної групи чи блоку. Унікальність запису про заявку - це фактично унікальність кожного рядка Microsoft Excel.
Наступні стовпці містять інформацію про заявника, викладача, день та час проведення занять. Ця інформація не вимагає ручного заповнення, а витягується з попередньо заповненого другого листа, як описано раніше. Безпосередньо введення даних буде виконуватися за допомогою спеціально розробленої форми вводу. Наприклад, при введенні прізвища викладача ми будемо вибирати її зі списку, заздалегідь заповненого на другому аркуші.
У стовпці F для кожної заявки вказується кількість студентів, які навчаються у цій групі. Ця інформація вноситься автоматично після вибору назви групи (ви вже бачили, що на другому листі присутні два пов'язаних шпальти - назва групи і число студентів в ній). У стовпцях, починаючи з К, відзначаються тижня, коли повинні проводитися заняття по даній заявці. Зірочка у відповідному стовпці говорить про те, що на цьому тижні заняття проводиться (на рис. 6.2 для всіх заявок зірочками відзначені заняття на першій і другій тижня).
Нумерація навчальних тижнів є типовою для навчальних закладів. Це пов'язано з тим, що кількість аудиторних годин для різних дисциплін за навчальним планом неоднаково. У зв'язку з цим якісь дисципліни в семестрі обмежені сім'ю заняттями, а якісь тривають протягом сімнадцяти тижнів. Що стосується нульової тижня, то її введення ставиться до ситуації, коли день початку семестру розташований в середині тижня (подібну тижня іноді називають нульовий).
Розглянемо елементи управління на рис. 6.2. Це три кнопки, які на аркуші розташовані в області перших двох рядків. У табл. 6.1 наведені значення їх властивостей Name і Caption.
Зрозуміло, що заповнення інформації про заявку і тим більше підбір для неї підходящою аудиторії вимагають деякої інтелектуальності алгоритму.
Так, програма повинна виявляти можливий введення некоректних заявок. Наприклад, при введенні черговий заявки викладач може бути в зазначений час вже зайнятий. Інша можлива ситуація - для вказаної в заявці групи вже зафіксовано інше заняття в цей час. Всі ці та інші подібні ситуації створювана розробка повинна відстежувати. При цьому автоматичне блокування подібних накладок не потрібно, тому що можливо, вони закладаються в розклад не випадково.
Для виключення ручного зміни інформації на першому аркуші у книзі передбачається установка захисту цього листа від змін. А такі технічні дії, як формування нових заявок і підбір аудиторії для них, виконуються за допомогою екранних форм. При цьому програмні процедури цих форм самостійно знімають захист з аркуша. У наступному розділі ми розглянемо одну з екранних форм.

2.1.2 Вихідні дані
Зведений звіт по завантаженню. Фактично ми спробуємо побудувати інформаційну систему для ефективного управління ресурсами. При цьому основним ресурсом буде фонд аудиторій, де ми повинні організувати навчальний процес, а в поняття управління вкладається створення різноманітних сервісних функцій для користувача, необхідних йому при складанні розкладу навчальних занять, наприклад: створення інтелектуальних форм для введення даних, подання наявної інформації у вигляді різноманітних звітів, зручні можливості коригування вже наявної інформації.
2.1.3 Схема і опис схеми алгоритму розв'язання задачі
Перейдемо до розгляду першого аркуша
Традиційно в наших розробках на першому аркуші робочої книги розташовуються елементи управління, пов'язані з основними діями користувача, і тут також не буде винятку.
Основний зміст першого аркуша - реєстрація заявок на проведення навчальних занять та аудиторій, які для цих занять виділяються. У верхній частині аркуша розташовуються елементи управління (ця область виділена сірої заливкою).
Подивимося тепер на інформацію, розташовану, починаючи з четвертого рядка аркуша (третя рядок відводиться для заголовків стовпців). Тут кожен рядок містить заявку на проведення певного заняття - нова заявка вводиться в чергову вільну рядок на цьому аркуші.
При цьому інформацію за заявкою умовно можна розділити на дві категорії:
□ початкова інформація про заняття (номер, заявник, викладач, день, час, група, кількість студентів у групі, назва дисципліни та номери навчальних тижнів, коли заняття повинні проводитися);
□ інформація про обслуговування даної заявки (обслужена вона і номер аудиторії, вибраної для проведення занять за заявкою).
Алгоритм підбору аудиторії становить важливу змістовну частину виконаної розробки. Тут враховується багато чинників - наявність групових (для декількох груп чи потоків) лекцій, наявність послідовних в часі занять у групі (у цьому випадку підбирається одна аудиторія - для виключення переходів з однієї кімнати в іншу) і ряд інших чинників. Так, у кожному рядку стовпці G і Н відводяться для запису інформації про обслуговування заявки (підібраною для неї аудиторії). І якщо аудиторія підібрана, то в стовпець G програмно записується слово "так", а в наступний стовпець вписується номер аудиторії.
Фактично, інформація на першому аркуші представляє собою деяку базу даних. Стовпець Номер дозволяє ввести для кожної заявки пояснюючий числовий або текстовий номер. При цьому для певного блоку заявок, якщо буде потрібно, можна вказати один і той же номер. Номер заявки визначає не її унікальність, а належність заявки до певної групи чи блоку. Унікальність запису про заявку - це фактично унікальність кожного рядка Microsoft Excel.
Наступні стовпці містять інформацію про заявника, викладача, день та час проведення занять. Ця інформація не вимагає ручного заповнення, а витягується з попередньо заповненого другого листа, як описано раніше. Безпосередньо введення даних буде виконуватися за допомогою спеціально розробленої форми вводу. Наприклад, при введенні прізвища викладача ми будемо вибирати її зі списку, заздалегідь заповненого на другому аркуші.
У стовпці F для кожної заявки вказується кількість студентів, які навчаються у цій групі. Ця інформація вноситься автоматично після вибору назви групи (ви вже бачили, що на другому листі присутні два пов'язаних шпальти - назва групи і число студентів в ній). У стовпцях, починаючи з К, відзначаються тижня, коли повинні проводитися заняття по даній заявці. Зірочка у відповідному стовпці говорить про те, що на цьому тижні заняття.
Нумерація навчальних тижнів є типовою для навчальних закладів. Це пов'язано з тим, що кількість аудиторних годин для різних дисциплін за навчальним планом неоднаково. У зв'язку з цим якісь дисципліни в семестрі обмежені сім'ю заняттями, а якісь тривають протягом сімнадцяти тижнів. Що стосується нульової тижня, то її введення ставиться до ситуації, коли день початку семестру розташований в середині тижня (подібну тижня іноді називають нульовий).
Розглянемо елементи управління. Це три кнопки, які на аркуші розташовані в області перших двох рядків. У табл. 7 наведені значення їх властивостей Name і Caption.
Таблиця 7. Значення властивостей кнопок
Name
Caption
Input_New
Введення нової заявки
Input_auditoria
Підбір аудиторії
De_lete
Зняття з обслуговування
Прийнято, що заповнення інформації про заявку і тим більше підбір для неї підходящою аудиторії вимагають деякої інтелектуальності алгоритму.
Так, програма повинна виявляти можливий введення некоректних заявок. Наприклад, при введенні черговий заявки викладач може бути в зазначений час вже зайнятий. Інша можлива ситуація - для вказаної в заявці групи вже зафіксовано інше заняття в цей час. Всі ці та інші подібні ситуації створювана розробка повинна відстежувати. При цьому автоматичне блокування подібних накладок не потрібно, тому що можливо вони закладаються в розклад не випадково.
Для виключення ручного зміни інформації на першому аркуші у книзі передбачається установка захисту цього листа від змін. А такі технічні дії, як формування нових заявок і підбір аудиторії для них, виконуються за допомогою екранних форм. При цьому програмні процедури цих форм самостійно знімають захист з аркуша. У наступному розділі ми розглянемо одну з екранних форм.
Зведений звіт по завантаженню
У цьому розділі ми розглянемо ще одну можливість роботи з розкладом. Розглянемо лист з назвою Звіт 2. Фактично це звіт, який дозволяє показати завантаженість фонду аудиторій щодо заявників (хто використовує фонд аудиторій більше, а хто менше).
Якщо фонд аудиторій обмежений і між різними факультетами виникають суперечності з приводу його завантаження, представляє інтерес такий зведений звіт, в якому наочно відображені заняття з різних факультетів. Ця ситуація цілком типова для сьогоднішнього дня, коли у вузах, поряд з бюджетним навчанням, є і комерційне. Багато виникають питання по фонду аудиторій можуть бути успішно вирішені за допомогою пропонованого в цьому розділі звіту.
На аркуші по горизонталі в п'ятій і шостій рядках виводяться дні і час початку занять (фактично в цих рядках перераховані всі заняття протягом тижня). У першому стовпці вказані всі аудиторії, якими володіє навчальний заклад. І якщо у визначений день і конкретний час в аудиторії за розкладом поставлено заняття, то у відповідній клітинці це відзначається певною заливкою (для кожного факультету свій колір заливки) і відображається кількість студентів ..
Розглянемо програмний код, що реалізовує побудова даного звіту, і в якості першого кроку прокоментуємо елементи управління.
У лівому верхньому кутку знаходиться поле зі списком (Name = L1). Цей елемент при відкритті книги автоматично заповнюється інформацією про навчальні тижнях (процедура workBook_open). Праворуч від поля зі списком розташовується кнопка Заповнити (Name = coml), що дозволяє заповнити лист інформацією. У результаті клацання по цій кнопці осередку листа заповнюються інформацією (кількість що займаються студентів і заявник).
На цьому листі ми легко можемо побачити інформацію про місткості конкретної аудиторії. Для цього потрібно лише клацнути по комірці, що містить номер аудиторії.
Тепер прокоментуємо деякі програмні конструкції, що виконуються по клацанню на кнопці Заповнити. Повний текст процедури обробки клацання по цій кнопці наведений у додатку 1. На початку процедури в масиві colors встановлюються кольори для заливки клітинок із заявками різних факультетів, що забезпечує наочність представлення інформації.
Після установки заливки клітинок (певний колір пов'язаний з конкретним заявником) спочатку виконується очищення області для висновку:
Range ("a5: ZZ200"). Select Selection.ClearContents
Також встановлюється білий колір заливки для області, де буде присутня інформація про заняття:
Range ("b7: ZZ200"). Select
With Selection.Interior
. ColorIndex = 0
. Pattern = xlSolid
End With
Після цього підраховується кількість заявників на другому листі:
N_Boss = О
While Worksheets (2). Cells (N_Boss + 2, 6). Value <> ""
N_Boss = N_Boss + 1
Wend
Як наступний дії на лист виводяться назви заявників та відповідні їм кольору. Для виведення цієї інформації використовуються перша і друга рядки листа:
For i = 1 Те N_Boss
Cells (2, 2 + i * 2). Select With Selection.Interior
. ColorIndex = colors (i)
. Pattern = xlSolid
End With
Cells (1, 2 + i * 2). Value = Worksheets (2). Cells (i + 1, 6). Value
Next
Наступний фрагмент дозволяє встановити в п'ятої та шостої рядках підпису час початку занять:
St = 1
For I = 1 To N_Day
For j = 1 To N_Times
St = St + 1
Cells ( 5, st ). Value = Worksheets (2). Cells (i = 1, 4). Value
Cells ( 6, st ). Value = Worksheets (2). Cells (i = 1, 5). Value
Next
Next
На цьому підготовча частина для формування звіту завершена, і далі заповнення звіту в циклі проглядаються всі заявки. Якщо заявка обслужена (для неї підібрана аудиторія) і на зазначеній тижня заняття з   заявкою проводиться, то далі вона аналізується. В іншому разі іншого звіту вона не розглядається.
У наступному фрагменті виробляється обчислення номера рядка, де вона а бути відображена:
Stroke = 0
For I = 1 To nom
If N_Ayd = CStr (Cells (i + 6, 1). Value) Then
Stroke = i + 6
Exit For
End if
Next
Аналогічно обчислюється значення стовпця на аркуші АФ, де необхідно відобразити віддану заявку:
For m = 1 To DaysTimes
If CStr (Workssheets (1). Cells (i, 4). Value) _
= CStr (Cells (5, 1 + m). Value) Then
If CStr (Workssheets (1). Cells (i, 5). Value) _
= CStr (Cells (6, 1 + m). Value) Then
Stolbec = 1 + m
Exit For
End If
End If
Next
Таким чином, ми визначили клітинку на аркуші, де слід відобразити інформацію по даній заявці.
Наступна дія - зафарбування осередку кольором того факультету, до якого ця заявка належить:
Name_Boss = CStr (Worksheets (1). Cells (i, 2). Value)
For nomer = 1 To N_Boss
If Name_Boss = CStr (Worksheets (2). Cells (nomer + 1, 6). Value) Then
Exit For
End If
Next
Cells (stroka, stolbec). Select With Selection.Interior
. ColorIndex = colors (nomer)
. Pattern = xlSolid End With
Тепер залишилося у вибраній комірці вказати кількість студентів, що займаються в аудиторії. Програмно це реалізується за допомогою одного рядка:
Cells (stroka, stolbec). Value = Cells (stroka, stolbec). Value +
Worksheets (1). Cells (i, 6). Value
Ми говорили, що на цьому аркуші можна подивитися інформацію про місткості аудиторії. Для цього розроблена наступна зумовлена ​​процедура, яка виконується при виділенні тієї чи іншої аудиторії. У результаті необхідна інформація виводиться у вікно для повідомлень (лістинг 21).
Лістинг 21. Зумовлена процедура selection З ha т ge
Private Sub Worksheet_SelectionChange (ByVal Target As Range)
'Обчислення рядка та стовпця виділеної комірки
Stroka = ActiveCell.Row
Stolbec = ActiveCell.Column
If Stolbec <> 1 Then
'Інформаційне вікно мабуть лише при виділенні першого стовпця
Infl.Visible = False
Elself Stroka> 6 Then
Infl.Visible = True
Infl.Text = "Місткість" + _
Str (Worksheets (2). Cells (Stroka - 5, 2)) + "чол"
End If
End Sub
Звіт по ресурсах фонду аудиторій
Важливим представляється відповідь на запитання: який вільний ресурс аудиторій в певному інтервалі навчальних тижнів? Відповідь на нього можна отримати на дев'ятому аркуші книги Microsoft Excel, який називається Звіт 3. По горизонталі на цьому аркуші в п'ятій і шостій рядках виводяться дні і час початку занять (фактично в цих рядках перераховані всі заняття протягом тижня), а в першому стовпчику зазначені всі аудиторії, якими володіє навчальний заклад. У цьому плані початок складання звіту нічим не відрізняється від попереднього.
Однак тепер у зведеній таблиці виводиться кількість занять в аудиторіях в зазначеному інтервалі тижнів. При цьому різна завантаженість (різна кількість занять у вибраному інтервалі) додатково виділяється різними кольорами. На аркуші реалізовані градації кольору в залежності від завантаженості:
□ максимальна завантаженість;
□ завантаженість вище середньої;
□ завантаженість нижче середньої;
□ в обраному інтервалі тижнів немає занять.
У цьому випадку користувачеві часто досить поглянути на звіт, щоб визначити, чи є аудиторії, скажімо для організації додаткової навчальної програми.
Крім колірної і числової інформації в осередках можна отримати більш детальну інформацію. Наприклад, щоб уточнити, якими заняттями аудиторія все-таки зайнята, потрібно всього лише подвійне клацання на обраній комірці. На аркуші відкриється текстове вікно, яке відображає всі заняття, що відповідають обраної комірці.
Примітка
Щоб прибрати це текстове вікно з екрана, потрібно зробити в ньому подвійне клацання.
На аркуші для роботи зі звітом закладена ще одна цікава можливість, пов'язана з двома кнопками - Підготувати до переміщення і Перемістити. За допомогою цих кнопок можна переміщати заняття з одних аудиторій в інші. Для цього потрібно виділити вихідну комірку і клацнути на кнопці Підготувати до переміщення - інформація про заявку за вказаною осередку зафіксується у внутрішній структурі даних (буфері). Після цього користувачеві потрібно лише виділити клітинку, куди він має намір перенести заняття, і клацнути на кнопці Перемістити.
У результаті таких простих дій у звіті відбулися зміни на першому аркуші заявок. Вихідна заявка вилучена, але при цьому з'явилася.
Зауважимо, що алгоритм переносу заявки в нову аудиторію характеризується певним "інтелектом". Перед перенесенням заявки спочатку аналізується можливість перенесення - чи немає в цій аудиторії занять в аналізовані інтервали тижнів. Наприклад, якщо ми переносимо дві заявки (в одній комірці може бути кілька занять, якщо вони проводяться у різні тижні) з однієї аудиторії в іншу, то у разі неможливості перенесення однієї з них ця заявка залишається без змін.
Розглянутий звіт, таким чином, крім отримання наочної зведеної інформації по завантаженню, дозволяє оперативно змінювати аудиторії в складеному розкладі. Із звіту при необхідності можна швидко знайти вільні класи для занять і планувати цикли дисциплін на певний час.
2.1.3.1 Блок - схема інтерфейсу
Початок
1
Овал: Початок 1


1
А


У
Овал: У БД


2


З
Овал: З таблиця
3


D
Овал: D зв'язку
4


E
Овал: E сервіс
5


Довідка 6


КІНЕЦЬ
Овал: КІНЕЦЬ 7
вихід 8
А
Овал: А


2.1.3.2. Опис блок - схеми інтерфейсу
1. ПОЧАТОК
2. Перевірка умови, якщо умова істинна, то йдемо на блок _
3. Перевірка умови, якщо умова істинна, то йдемо на блок _
3. Перевірка умови, якщо умова істинна, то йдемо на блок _
4. Перевірка умови, якщо умова істинна, то йдемо на блок _
5. Перевірка умови, якщо умова істинна, то йдемо на блок
6. Перевірка умови, якщо умова істинна, то йдемо на блок _
7. Перевірка умови, якщо умова істинна, то йдемо на блок _
8. КІНЕЦЬ
2.2 Опис процесу налагодження програми
Помилки при роботі над проектом, особливо складним і великим, неминучі. Тому при створенні проекту важливим етапом є налагодження програми. Налагодження - неодмінний етап роботи над будь-яким проектом. Як правило, це перевірка функціонування проекту та виправлення помилок перед передачею його на тестування. Для виконання налагодження в Visual Basic 6 існує набір спеціальних інструментів, який розглядається в цьому розділі. Редактор коду.
Редактор коду програми Visual Basic 6 - це досить потужний текстовий редактор з великою кількістю можливостей і є основним інструментом програміста для створення та налагодження програми. У вікні редактора представлені наступні елементи управління:
список, що розкривається Object (Об'єкт) - забезпечує вибір об'єктів програми. Цей список знаходиться в лівому верхньому кутку вікна редактора. При виборі об'єкта в цьому списку синхронно змінюється вміст списку Procedure;
список, що розкривається Procedure (Процедура) дає можливість вибору членів об'єкта (подій) і автоматичного виведення процедури або шаблону для обраного члена у вікні редактора. Цей список знаходиться праворуч від списку Object; кнопка Procedure View (Перегляд процедур) - включає режим перегляду процедур для кожного об'єкта окремо. Розташовується в лівому, нижньому кутку вікна редактора;
кнопка Full Module View (Повний перегляд модулів) - включає режим роботи повного перегляду процедур, при якому у вікні редактора показані всі процедури, розділені горизонтальною лінією (якщо встановлено відповідний прапор налаштування). Розташовується в лівому нижньому кутку вікна редактора;
горизонтальна і вертикальна смуги прокручування - дозволяють переглянути текст, який не вміщується у поточному вікні редактора.
Як можна зрозуміти зі списку елементів керування, редактор коду працює в двох режимах: у режимі перегляду всього тексту програми (повний перегляд процедур) і в режимі перегляду процедур окремо (перегляд окремих процедур). Редактор коду викликається автоматично при подвійному клацанні миші на формі проекту або командою Code (Код) меню View (Вид). Для кожного елементу проекту (форми або програмного модуля) відкривається окреме вікно редактора коду. Відповідно це вікно з'являється у списку вікон меню Window (Вікно). У великому проекті найзручніше працювати з Провідника проекту. У цьому випадку редактор коду викликається кнопкою View Code (Перегляд коду) панелі інструментів вікна Провідника.
2.3 Характеристика програми
Дана програма написана на мові Visual Basic 6.0 і являє собою 1 додатком, призначених виконувати всі функції, які потрібні завданням. У кінцевий продукт входить 1 відкомпільоване програми, розмір якого становить відповідно 892 байт. Для роботи необхідні такі системні ресурси: Перш ніж приступити до роботи з даною системою, необхідно мати: комп'ютер, сумісний з IBM PC з тактовою частотою процесора не менше 1500 MHz; оперативну пам'ять 256 Mb; жорсткий диск об'ємом 40 Mb; відеоадаптер SVGA з об'ємом оперативної пам'яті 128 Mb.
2.4 Контрольний приклад

2.5 Інструкція користувача
Для запуску програми необхідно виконати наступні дії. Натиснути кнопку пуск в панелі завдань; і наития програму Visual Basic 6.0.
Після цього на екрані програми з'являється з короткою інформацією про неї самої в даному режимі користувачу потрібно відкрити БД. Це можна зробити 2-ма способами: Через меню Файл-Відкрити Базу Даних; клацнути на панелі інструментів піктограму відкриття БД.
У тому і іншому випадку програма виведе вікно в якому користувач може вибрати або ввести ім'я і шлях до БД. При натисканні кнопки «ОК» програма відкриває БД після цього стає до цього не доступна пункт меню «База даних» та всі інші піктограми панелі інструментів доступними. Програма готова до роботи Рядок меню складається з наступних пунктів:
Файл - служить для роботи з файлами за режимом закріплюються падаючі меню: Відкрити БД;
Закрити БД - після виконання цього пункту меню програма повертається у вихідне
положення;
Вихід;
Таблиця - служить для роботи з БД. За режимом закріплюється падаючі меню:
Таблиця «спец меню»;
Таблиця «додаткова інформація»;
Сервіс служить для роботи із запитами з БД. За режимом закріплюється падаючі
меню:
Створення БД - після виконання цього пункту меню запускається другий додаток генерації БД.
Введення запиту - після виконання цього пункту меню можна відкрити вікно із запитом для пошуку.
Вікно - служить для роботи з вікнами. ЗА режимом закріплюється падаючі меню:
Закрити всі - дозволяє закрити всі відкриті вікна. Каскад - дозволяє розташувати вікна накладенням; Мозаїка - рівномірний розподіл вікон на екрані; Вибудувати значки порядок згорнуті вікна. Панель інструментів складається з наступних пентаграм Відкрити БД; Закрити БД; Запит; Вихід;
У панелі стану висвічуються поточний час і дата.

ВИСНОВОК
У даному курсовому проекті був розроблений програмний пакет, що дозволяє автоматизувати процес роботи «розробка інформаційно-пошукової системи з підбору аудиторій.» Продукт був реалізований на мові VBA в середовищі програмування MS Excel.
Для функціонування його на персональному комп'ютері не обов'язково наявність програми Visual Basic 6.0, тому що для початку роботи програми необхідно лише запустити файл проекту.
Програма досить проста у використанні, тому прийнятна для будь-якого користувача.

Додаток 1
Процедури листа звіт 2
Private Sub CommandButton1_Click ()
Dim colors (10) As Integer
colors (1) = 4 'Установка квітів
colors (2) = 22 'для позначення факультетів
colors (3) = 19
colors (4) = 24
colors (5) = 26
colors (6) = 40
colors (7) = 43
colors (8) = 44
colors (9) = 6
colors (10) = 28
If L1.ListIndex = -1 Then 'Вихід, якщо не вибрана тиждень
MsgBox ("Не виділено тиждень")
Exit Sub
End If
Range ("a5: AZ100"). Select "Видалення області даних
Selection.ClearContents
'Підрахунок кількості навчальний днів у тижні
N_Day = 0
While Worksheets (2). Cells (N_Day + 2, 4). Value <> ""
N_Day = N_Day + 1
Wend
'Підрахунок кількості занять протягом дня
N_Times = 0
While Worksheets (2). Cells (N_Times + 2, 5). Value <> ""
N_Times = N_Times + 1
Wend
'Підрахунок кількості аудиторій
N_Ayd = 0
While Worksheets (2). Cells (N_Ayd + 2, 1). Value <> ""
N_Ayd = N_Ayd + 1
Wend
DaysTimes = N_Day * N_Times
N_Boss = 0 'Підрахунок заявників
While Worksheets (2). Cells (N_Boss + 2, 6). Value <> ""
N_Boss = N_Boss + 1
Wend
Range ("b7: AZ100"). Select
With Selection.Interior 'Заливка білим кольором області виведення
. ColorIndex = 0
. Pattern = xlSolid
End With
For i = 1 To N_Boss
Cells (2, 2 + i * 2). Select
With Selection.Interior 'Встановлення позначень кольорів
. ColorIndex = colors (i) 'заявників
. Pattern = xlSolid
End With
'Встановлення підписів заявників для відповідних кольорів
Cells (1, 2 + i * 2). Value = Worksheets (2). Cells (i + 1, 6). Value
Next
'Підрахунок кількості рядків з завком на 1-му аркуші
N = 0
While Worksheets (1). Cells (N + 4, 1). Value <> ""
N = N + 1
Wend
stroka = 7 'Дані на аркуші розміщуються починаючи з сьомої рядки
For i = 1 To N_Ayd 'Встановлення підписів аудиторій
Cells (stroka, 1). Value = _
Worksheets (2). Cells (i + 1, 1). Value
stroka = stroka + 1
Next
St = 1
For i = 1 To N_Day 'Встановлення підписів занять
For j = 1 To N_Times
St = St + 1
Cells (5, St). Value = Worksheets (2). Cells (i + 1, 4). Value
Cells (6, St). Value = Worksheets (2). Cells (j + 1, 5). Value
Next
Next
For i = 1 To DaysTimes
For j = 1 To N_Ayd
Cells (6 + j, i + 1) = 0 'Ініціалізація осередків
Next
Next
For i = 4 To N + 3 'Цикл по рядках заявок
If CStr (Worksheets (1). Cells (i, 7). Value) = "так" Then
'Виконання умови по обслуговуванню заявки
stroka = 0
For ia = 1 To N_Ayd
If CStr (Worksheets (1). Cells (i, 8). Value) = _
CStr (Cells (ia + 6, 1). Value) Then
stroka = ia + 6
Exit For
End If
Next
If stroka> 0 And _
CStr (Worksheets (1). Cells (i, CInt (L1.Text) + 11). Value) = _
"*" Then
'Якщо є рядок із зазначеною аудиторією
For m = 1 To DaysTimes
'Знаходження стовпця на аркуші для приміщення заявки
If CStr (Worksheets (1). Cells (i, 4). Value) = _
CStr (Cells (5, 1 + m). Value) Then
If CStr (Worksheets (1). Cells (i, 5). Value) = _
CStr (Cells (6, 1 + m). Value) Then
stolbec = 1 + m
Exit For
End If
End If
Next
nomer = 1
For iy = 1 To N_Boss 'Визначення заявника в заявці
If CStr (Worksheets (1). Cells (i, 2). Value) _
= CStr (Worksheets (2). Cells (iy + 1, 6). Value) Then
nomer = iy
Exit For
End If
Next
Cells (stroka, stolbec). Value = _
Cells (stroka, stolbec). Value + _
Worksheets (1). Cells (i, 6). Value
Cells (stroka, stolbec). Select
With Selection.Interior
. ColorIndex = colors (nomer) 'Установка заливки
. Pattern = xlSolid 'для комірки
End With
End If
End If
Next
Range ("a5"). Select
End Sub
Private Sub Worksheet_Activate ()
N_Ned = 0
While Worksheets (2). Cells (N_Ned + 2, 3). Value <> ""
N_Ned = N_Ned + 1
Wend

L1.Clear
For i = 1 To N_Ned
L1.AddItem Worksheets (2). Cells (i + 1, 3). Value
Next
If L1.ListCount> 0 And Sav1 <L1.ListCount Then
L1.ListIndex = Sav1
End If
End Sub
Private Sub Worksheet_Deactivate ()
Sav1 = L1.ListIndex
End Sub
Private Sub Worksheet_SelectionChange (ByVal Target As Range)
'Обчислення рядка та стовпця виділеної комірки
stroka = ActiveCell.Row
stolbec = ActiveCell.Column
If stolbec <> 1 Then
'Інформаційне вікно мабуть лише при виділенні першої колонки
Inf1.Visible = False
ElseIf stroka> 6 Then
Inf1.Visible = True
Inf1.Text = "Місткість" + _
Str (Worksheets (2). Cells (stroka - 5, 2)) + "чол"
End If
End Sub
Процедури аркуша звіт 3
Private Sub Com_2_Click ()
'Номери рядка та стовпця виділеної заявки
NumStr = ActiveCell.Row
NumCol = ActiveCell.Column
If NumStr <7 Or NumCol <2 Then
Exit Sub
End If
Vrem = CStr (Cells (6, NumCol)) 'Обчислення часу та дня часу заняття
Den = CStr (Cells (5, NumCol))
aud = CStr (Cells (NumStr, 1))
ColZ = 0 'Підрахунок заявок у виділеній клітинці
N = 0 'Підрахунок кількості заявок на першому аркуші
While Worksheets (1). Cells (N + 4, 1). Value <> ""
N = N + 1
Wend
For i = 1 To N 'Цикл за кількістю заявок
Day1 = CStr (Worksheets (1). Cells (i + 3, 4). Value)
Time1 = CStr (Worksheets (1). Cells (i + 3, 5). Value)
Aud1 = CStr (Worksheets (1). Cells (i + 3, 8). Value)
indicator = 0
If Time1 = Vrem And Day1 = Den And aud = Aud1 Then
For j = CInt (L1.Text) To CInt (L2.Text)
If Worksheets (1). Cells (i + 3, 11 + j). Value = "*" Then
'Indicator = 1
ColZ = ColZ + 1
mZ (ColZ) = i + 3
Exit For
End If
Next
End If
Next
Cells (NumStr, NumCol). Select
With Selection.Interior
. ColorIndex = 38
. Pattern = xlSolid
End With
End Sub
Private Sub Com_3_Click ()
row7 = ActiveCell.Row 'Обчислення номера стовпця і рядка
col7 = ActiveCell.Column
Symma = Cells (NumStr, NumCol). Value 'Підсумкова сума копійованої осередки
N = 0 'Обчислення числа рядків на першому аркуші
While Worksheets (1). Cells (N + 4, 1). Value <> ""
N = N + 1
Wend
NNa = 0 'Кількість аудиторій на першому аркуші
While Worksheets (2). Cells (NNa + 2, 1). Value <> ""
NNa = NNa + 1
Wend
audN = CStr (Cells (row7, 1)) 'Значення аудиторії, дня і часу виділеної
denN = CStr (Cells (5, col7)) 'осередки
vremZ = CStr (Cells (6, col7))
flagZ = 0 'Індикатор можливості переміщення заявок
For i = 4 To N + 3 'Перевірка занять
For j = 1 To ColZ
If i = mZ (j) Then
GoTo Nexti2 'Обходимо копійовані заявку
End If
Next
a_i = CStr (Worksheets (1). Cells (i, 8). Value)
d_i = CStr (Worksheets (1). Cells (i, 4). Value)
v_i = CStr (Worksheets (1). Cells (i, 5). Value)
o_i = CStr (Worksheets (1). Cells (i, 7). Value)
If o_i <> "так" Then 'Якщо заявка необслужена, то її обходимо
GoTo Nexti2
End If
For j = 1 To ColZ 'Цикл за кількістю переміщуються заявок
If audN = a_i And denN = d_i And vremZ = v_i Then
'При збігу аудиторії, дня і часу
For m = 0 To 17
If Worksheets (1). Cells (i, 11 + m). Value = "*" _
And Worksheets (1). Cells (mZ (j), 11 + m). Value = "*" Then
flagZ = 1 'Якщо є перекриття хоча б по одному тижню,
Exit For 'то копіювання неможливо
End If
Next 'Цикл по тижнях
End If
If flagZ = 1 Then
Exit For
End If
Next 'Цикл за кількістю переміщуються заявок
If flagZ = 1 Then
Exit For
End If
Nexti2: Next 'Завершення перевірки
If flagZ = 1 Then 'Якщо копіювання неможливо, то виводимо відповідне повідомлення
MsgBox ("Заявку не вдається перенести. Аудиторне час зайнято.")
Max1 = CInt (L2.Text) - CInt (L1.Text) + 1
porog1 = CInt (Max1 / 2)
row7 = NumStr
col7 = NumCol
a = CInt (Cells (row7, col7). Value)
If a = 0 Then
ElseIf a = Max1 Then
Cells (row7, col7). Select
With Selection.Interior
. ColorIndex = 7
. Pattern = xlSolid
End With
ElseIf a <= porog1 Then
Cells (row7, col7). Select
With Selection.Interior
. ColorIndex = 8
. Pattern = xlSolid
End With
ElseIf a> porog1 And a <Max1 Then
Cells (row7, col7). Select
With Selection.Interior
. ColorIndex = 15
. Pattern = xlSolid
End With
End If
Exit Sub
End If
'Цикл за кількостях копіювати заявок
Worksheets (1). Unprotect
For ia = 1 To ColZ
Nom = 0
While Worksheets (1). Cells (Nom + 4, 1). Value <> ""
Nom = Nom + 1
Wend
Worksheets (1). Cells (Nom + 4, 1). Value = Worksheets (1). Cells (mZ (ia), 1). Value
Worksheets (1). Cells (Nom + 4, 2). Value = Worksheets (1). Cells (mZ (ia), 2). Value
Worksheets (1). Cells (Nom + 4, 3). Value = Worksheets (1). Cells (mZ (ia), 3). Value
Worksheets (1). Cells (Nom + 4, 4). Value = denN
Worksheets (1). Cells (Nom + 4, 5). Value = vremZ
Worksheets (1). Cells (Nom + 4, 6). Value = Worksheets (1). Cells (mZ (ia), 6). Value
Worksheets (1). Cells (Nom + 4, 7). Value = Worksheets (1). Cells (mZ (ia), 7). Value
Worksheets (1). Cells (Nom + 4, 8). Value = audN
For uo = 9 To 28
Worksheets (1). Cells (Nom + 4, uo). Value = Worksheets (1). Cells (mZ (ia), uo). Value
Next
Next
'Завершення циклу за кількостях копіювати заявок
'Видалення заявок
For oi = ColZ To 1 Step -1
i = mZ (oi)
Worksheets (1). Rows (i). Delete
Next
Worksheets (1). Protect DrawingObjects: = True, Contents: = True, Scenarios: = True
Cells (NumStr, NumCol). Value = "0"
Cells (NumStr, NumCol). Select
With Selection.Interior
. ColorIndex = 0
. Pattern = xlSolid
End With
Max1 = CInt (L2.Text) - CInt (L1.Text) + 1
porog1 = CInt (Max1 / 2)
Cells (row7, col7). Value = Symma
If Symma = 0 Then
Cells (row7, col7). Select
With Selection.Interior
. ColorIndex = 7
. Pattern = xlSolid
End With
ElseIf Symma = Max1 Then
Cells (row7, col7). Select
With Selection.Interior
. ColorIndex = 7
. Pattern = xlSolid
End With
ElseIf Symma <= porog1 Then
Cells (row7, col7). Select
With Selection.Interior
. ColorIndex = 8
. Pattern = xlSolid
End With
ElseIf Symma> porog1 And Symma <Max1 Then
Cells (row7, col7). Select
With Selection.Interior
. ColorIndex = 15
. Pattern = xlSolid
End With
End If
End Sub
Private Sub CommandButton1_Click ()
"Видалення області листа зі старими даними
Range ("a5: AZ100"). Select
Selection.ClearContents
Range ("a1"). Select
'Прибираємо з екрану інформаційне вікно
T1.Visible = False
'Підрахунок кількості навчальний днів у тижні
N_Days = 0
While Worksheets (2). Cells (N_Days + 2, 4). Value <> ""
N_Days = N_Days + 1
Wend
'Підрахунок кількості занять протягом дня
N_Times = 0
While Worksheets (2). Cells (N_Times + 2, 5). Value <> ""
N_Times = N_Times + 1
Wend
'Підрахунок кількості аудиторій
N_Rooms = 0
While Worksheets (2). Cells (N_Rooms + 2, 1). Value <> ""
N_Rooms = N_Rooms + 1
Wend
'Розрахунок кількості занять протягом тижня
DaysTimes = N_Days * N_Times
For i = 1 To DaysTimes
For j = 1 To N_Rooms
Cells (6 + j, i + 1) = 0
Next
Next
'Підрахунок числа заявників
N_Boss = 0
While Worksheets (2). Cells (N_Boss + 2, 6). Value <> ""
N_Boss = N_Boss + 1
Wend
Range ("b7: AZ100"). Select 'Заливка білим кольором області виведення
With Selection.Interior
. ColorIndex = 0
. Pattern = xlSolid
End With
'Підрахунок кількості рядків на 1-му аркуші
N = 0
While Worksheets (1). Cells (N + 4, 1). Value <> ""
N = N + 1
Wend
'Виведення інформації починаємо з сьомого рядка
stroka = 7
For i = 1 To N_Rooms 'Заповнення стовпця аудиторій
Cells (stroka, 1). Value = Worksheets (2). Cells (i + 1, 1). Value
stroka = stroka + 1
Next
St = 1 'Заповнення днів і початку занять
For i = 1 To N_Days
For j = 1 To N_Times
St = St + 1
Cells (5, St). Value = Worksheets (2). Cells (i + 1, 4). Value
Cells (6, St). Value = Worksheets (2). Cells (j + 1, 5). Value
Next
Next
N_Ayd = 0 'Підрахунок аудітоій занесених на цей лист
While Cells (N_Ayd + 7, 1). Value <> ""
N_Ayd = N_Ayd + 1
Wend
For j = CInt (L1.Text) To CInt (L2.Text) 'Цикл за вказаними тижнях
For i = 4 To N + 3 'Цикл по рядках першого аркуша
If CStr (Worksheets (1). Cells (i, 7). Value) = _
"Так" Then 'Якщо заявка обслужена
Nayd = Worksheets (1). Cells (i, 8). Value
stroka = 0
For m = 1 To N_Rooms
If CStr (Nayd) = CStr (Cells (m + 6, 1). Value) Then
stroka = m + 6
Exit For
End If
Next
'Якщо не знайдена аудиторія зазначена в рядку на першому аркуші
If stroka = 0 Then
inform_text = "Помилка в даних у рядку" + CStr (i)
MsgBox (inform_text)
'Worksheets (1). Cells (i, 1). Activate
Range ("A1"). Select
Exit Sub
End If
For m = 1 To DaysTimes
If CStr (Worksheets (1). Cells (i, 4). Value) = CStr (Cells (5, 1 + m). Value) _
And CStr (Worksheets (1). Cells (i, 5). Value) = CStr (Cells (6, 1 + m). Value) Then
stolbec = 1 + m
Exit For
End If
Next
'Частковий для обліку групових занять
If Worksheets (1). Cells (i, j + 11). Value = "*" And Cells (stroka, stolbec). Value <1000 Then
Cells (stroka, stolbec) = Cells (stroka, stolbec) + 1
Cells (stroka, stolbec) = Cells (stroka, stolbec) + 1000
End If
End If
Next
For ii = 1 To DaysTimes
For jj = 1 To N_Rooms
a = CInt (Cells (jj + 6, ii + 1). Value)
If a> = 1000 Then
Cells (jj + 6, ii + 1). Value = Cells (jj + 6, ii + 1). Value - 1000
End If
Next
Next
Next
'Забарвлення занять
Maximum = CInt (L2.Text) - CInt (L1.Text) + 1
porog = CInt (Maximum / 2) 'Поріг - половина зайнятих днів в зазначеному інтервалі
For i = 1 To DaysTimes
For j = 1 To N_Rooms
a = CInt (Cells (j + 6, i + 1). Value) 'Кількість занять
If a = Maximum Then
Cells (j + 6, i + 1). Select
With Selection.Interior
. ColorIndex = 7 'Забарвлення при максимальній зайнятості
. Pattern = xlSolid
End With
ElseIf a <= porog And a> 0 Then
Cells (j + 6, i + 1). Select
With Selection.Interior
. ColorIndex = 8 'Забарвлення при знятості менше среней
. Pattern = xlSolid
End With
ElseIf a> porog And a <Maximum Then
Cells (j + 6, i + 1). Select
With Selection.Interior
. ColorIndex = 15
. Pattern = xlSolid
End With
End If
Next
Next
Range ("a5"). Select
T1.Visible = True
End Sub
Private Sub CommandButton2_Click ()
F_Podbor.Show
End Sub
Private Sub T1_DblClick (ByVal Cancel As MSForms.ReturnBoolean)
T1.Text = ""
T1.Visible = False
End Sub
Private Sub Worksheet_Activate ()
N_Ned = 0
While Worksheets (2). Cells (N_Ned + 2, 3). Value <> ""
N_Ned = N_Ned + 1
Wend

L1.Clear
L2.Clear
For i = 1 To N_Ned
L1.AddItem Worksheets (2). Cells (i + 1, 3). Value
L2.AddItem Worksheets (2). Cells (i + 1, 3). Value
Next
If L1.ListCount> 0 And Sav1 <L1.ListCount Then
L1.ListIndex = Sav1
End If
If L2.ListCount> 0 And Sav2 <L2.ListCount Then
L2.ListIndex = Sav2
End If
Private Sub Worksheet_Deactivate ()
Sav1 = L1.ListIndex
Sav2 = L2.ListIndex
End Sub
Private Sub Worksheet_SelectionChange (ByVal Target As Range)
NumStr1 = ActiveCell.Row
NumCol1 = ActiveCell.Column
If NumCol1 <> 1 Then
If T1.Visible = False Then
Exit Sub
End If
T1.Text = ""
N_Days = 0
While Worksheets (2). Cells (N_Days + 2, 4). Value <> ""
N_Days = N_Days + 1
Wend
N_Times = 0
While Worksheets (2). Cells (N_Times + 2, 5). Value <> ""
N_Times = N_Times + 1
Wend
'Кількість рядків
DaysTimes = N_Days * N_Days
N = 0
While Worksheets (1). Cells (N + 4, 1). Value <> ""
N = N + 1
Wend
'Цикл по рядках першого аркуша
For i = 1 To N
Day1 = CStr (Worksheets (1). Cells (i + 3, 4). Value)
Time1 = CStr (Worksheets (1). Cells (i + 3, 5). Value)
Group1 = CStr (Worksheets (1). Cells (i + 3, 9). Value)
Prepod1 = CStr (Worksheets (1). Cells (i + 3, 3). Value)
Disp1 = CStr (Worksheets (1). Cells (i + 3, 10). Value)
Aud1 = CStr (Worksheets (1). Cells (i + 3, 8). Value)
Obs1 = CStr (Worksheets (1). Cells (i + 3, 7). Value)
'Якщо заявка обслужена
If Obs1 = "так" Then
indic = 0
For j = CInt (L1.Text) To CInt (L2.Text)
If CStr (Worksheets (1). Cells (i + 3, 10 + j). Value) = "*" Then
indic = 1
Exit For
End If
Next
'Якщо інтервал тижнів відпо
If indic = 1 Then
If Day1 = CStr (Cells (5, NumCol1). Value) And _
Time1 = CStr (Cells (6, NumCol1). Value) _
And CStr (Cells (NumStr1, 1). Value) = Aud1 Then
If T1.Text <> "" Then
T1.Text = T1.Text + Chr (10)
End If
T1.Text = T1.Text + Disp1
T1.Text = T1.Text + "" + Group1
T1.Text = T1.Text + "" + Prepod1 + ""
For j = CInt (L1.Text) To CInt (L2.Text) 'Цикл 1
ask = CStr (Worksheets (1). Cells (i + 3, j + 11). Value)
If ask = "*" Then
T1.Text = T1.Text + "" + Str (j) + ","
End If
Next
End If
End If 'Якщо інтервал тижнів відпо
End If 'Якщо заявка обслужена
Next 'Завершення циклу по рядках першого аркуша
T3.Visible = False
ElseIf NumStr1> 6 Then
T3.Visible = True
T3.Text = "Місткість" + Str (Worksheets (2). Cells (NumStr1 - 5, 2)) + "чол"
End If
End Sub

Додаток 2
Процедура, пов'язана з відкриттям книги
Private Sub Workbook_Open ()
'Підрахунок днів на другому аркуші
N_Days = 0
While Worksheets (2). Cells (N_Days + 2, 4). Value <> ""
N_Days = N_Days + 1
Wend
'Заповнення списку L1 на 3-му аркуші
Worksheets (3). L1.Clear
For i = 1 To N_Days
Worksheets (3). L1.AddItem Worksheets (2). Cells (i + 1, 4). Value
Next
'Підрахунок занять протягом дня
N_Times = 0
While Worksheets (2). Cells (N_Times + 2, 5). Value <> ""
N_Times = N_Times + 1
Wend
'Заповнення списку L2 на 3-му аркуші
Worksheets (3). L2.Clear
For i = 1 To N_Times
Worksheets (3). L2.AddItem CStr (Worksheets (2). Cells (i + 1, 5). Value)
Next
'Підрахунок кількості тижнів на другому аркуші
N_Ned = 0
While Worksheets (2). Cells (N_Ned + 2, 3). Value <> ""
N_Ned = N_Ned + 1
Wend
'Заповнення третій списку L3 на 3-му аркуші
Worksheets (3). L3.Clear
For i = 1 To N_Ned
Worksheets (3). L3.AddItem Worksheets (2). Cells (i + 1, 3). Value
Next
'Заповнення списків тижнів на 4-му аркуші
Worksheets (4). C1.Clear
Worksheets (4). C2.Clear
For i = 1 To N_Ned
Worksheets (4). C1.AddItem Worksheets (2). Cells (i + 1, 3). Value
Worksheets (4). C2.AddItem Worksheets (2). Cells (i + 1, 3). Value
Next
'Заповнення списку тижнів на 8-му аркуші
Worksheets (8). L1.Clear
For i = 1 To N_Ned
Worksheets (8). L1.AddItem Worksheets (2). Cells (i + 1, 3). Value
Next
'Заповнення списку тижнів на 9-му аркуші
Worksheets (9). L1.Clear
Worksheets (9). L2.Clear
For i = 1 To N_Ned
Worksheets (9). L1.AddItem Worksheets (2). Cells (i + 1, 3). Value
Worksheets (9). L2.AddItem Worksheets (2). Cells (i + 1, 3). Value
Next
'Заповнення списку тижнів на 10-му аркуші
Worksheets (10). L1.Clear
Worksheets (10). L2.Clear
For i = 1 To N_Ned
Worksheets (10). L1.AddItem Worksheets (2). Cells (i + 1, 3). Value
Worksheets (10). L2.AddItem Worksheets (2). Cells (i + 1, 3). Value
Next
'Підрахунок числа викладачів
N_Prepod = 0
While Worksheets (2). Cells (N_Prepod + 2, 7). Value <> ""
N_Prepod = N_Prepod + 1
Wend
'Заповнення списку викладачів на аркуші Навантаження
Worksheets (12). Prepod.Clear
For i = 1 To N_Prepod
Worksheets (12). Prepod.AddItem Worksheets (2). Cells (i + 1, 7). Value
Next
Worksheets (11). Mesac.Clear
Worksheets (11). Mesac.AddItem "вересень"
Worksheets (11). Mesac.AddItem "жовтень"
Worksheets (11). Mesac.AddItem "листопад"
Worksheets (11). Mesac.AddItem "грудень"
Worksheets (11). Mesac.AddItem "січень"
Worksheets (11). Mesac.AddItem "лютий"
Worksheets (11). Mesac.AddItem "березень"
Worksheets (11). Mesac.AddItem "квітень"
Worksheets (11). Mesac.AddItem "травень"
Worksheets (11). Mesac.AddItem "червень"
'Встановлення захисту на перший і другий аркуші
Worksheets (1). Protect DrawingObjects: = True, Contents: = True, _
Scenarios: = True
Worksheets (2). Protect DrawingObjects: = True, Contents: = True, _
Scenarios: = True
End Sub

СПИСОК ЛІТЕРАТУРИ
1 Смирнов Г.Н. «Проектування економічних інформаційних систем». Підручник.-М.: Фінанси і статистика, 2003.
2. Ємельянова Н.З. та ін «Основи побудови автоматизованих систем». Навчальний посібник. - М.: Форум: ИНФРА-М, 2005.
3. Гарнаєв А.Ю. «Самовчитель VBA.» СПБ.: БХВ-Петеребург, 2004.
4. Уокенбах Д. «Професійне програмування на VBA в Exel 2002».: Переклад з англійської. - М.: Видавничий дім «Вільямс», 2003
Interest = Worksheets ("Лист1"). Range ("Al"). Value
У об'єктів є методи. Метод - це дія, яка виконується над об'єктом. Наприклад, один з методів об'єкту Range - ClearContents. Цей метод видаляє вміст діапазону комірок.
Методи вводяться після назви об'єкта з методом, в ролі роздільника виступає крапка.
Наприклад, для видалення вмісту комірки А1 активного робочого аркуша використовується наступна команда:
R ang е ("А1"). ClearContents
VBA також включає конструкції сучасних мов програмування (в тому числі масиви, цикли, тощо).
Знайомство з редактором Visual Basic
Для роботи і перегляду модулів VBA використовується редактор Visual Basic (VBE-Visual Basic Editor).
Модулі VBA все ще зберігаються разом з файлами робочої книги; просто вони не видні до тих пір. поки не запущений редактор VBE.
VBE-це окремий додаток, запускається в Excel. Програма сама виконує всю операцію по запуску VBE. коли це необхідно. VBE не може запускатися окремо від Excel; для запуску VBE використовується тільки Excel.
Запуск VB E
Під час роботи в Excel ви можете перейти до вікна VBE за допомогою одного з таких способів.
1) натиснути <Alt+F11>.
2) Вибрати команду Сервіс - Макрос - Редактор Visual Basic.
3) Клацнути на кнопці Редактор Visual Basic, розташованої на панелі інструментів Visual Basic.
Вікна VB E
VBE складається з ряду елементів. У наступний розділах коротко описані ключові компоненти редактора Visual Basic.
Рядок меню
Рядок меню VBE. природно, працює, як і рядок меню будь-якого іншого застосування.
Вона містить команди, використовувані для управління різними компонентами VBA. Крім того, для виконання багатьох команд меню використовуються комбінації клавіш. Наприклад, для команди ViewAImmediate Window (Вид - Вікно налагодження) застосовується комбінація клавіш <Ctrl+G>.
У VBE також представлені контекстні меню. Клацнувши правою кнопкою миші практично на будь-яких елементах вікна VBE, ви побачите меню, що пропонують ряд команд.
Конфіденційність
Стандартна панель інструментів Standard, яка за умовчанням знаходиться під рядком меню, - це одна з шести панелей інструментів, що використовуються в VBE (рядок меню теж вважається панеллю інструментів). Конфіденційність VBE працюють, як і в Excel: ви можете задавати спеціальні параметри для панелей інструментів, переміщати їх. відображати інші панелі інструментів і т.д. Для управління панелями інструментів VBE використовується команда VicwAToolbarsACustomic (Вид-Конфіденційність-Налаштування).
Вікно Project Explorer
У вікні Project Explorer відображається діаграма-дерево, що складається з усіх відкритих на цей момент в Excel робочих книг (включаючи додаткові елементи і приховані робочі книги). Кожна робоча книга відома як проект.
Якщо в редакторі Visual Basic вікно Project Explorer не відображено, натисніть <Ctrl+R>. Щоб приховати його, клацніть на кнопці закриття рядка заголовка (або клацніть правою кнопкою миші в будь-якому місці вікна і виберіть Hide з контекстного меню).
Вікно коду
Вікно коду (яке іноді називають Module) містить код VBA. Для кожного елементу проекту представлено власне вікно коду. Щоб переглянути код об'єкта, двічі клацніть мишею на цьому об'єкті у вікні Project Explorer. Наприклад, щоб переглянути код об'єкта Аркуш1. двічі клацніть на елементі Аркуш1 у вікні Project Explorer. Якщо ви не створювали для нього VBA-коду. це вікно, буде порожнім. Існує ще один спосіб переглянути код об'єкта - виділіть цей об'єкт у вікні Project Explorer, а потім клацніть на кнопці View Code (Перегляд коду) на панелі інструментів вгорі вікна Project Explorer.
Вікно Immediate
Вікно Immediate призначене для безпосереднього виконання операторів VBA. тестування операторів і налагодження коду. Це вікно може відображатися й ховатися. Якщо вікно Immediate в даний момент не відображається на екрані, натисніть <Ctrl+G>. Щоб закрити вікно Immediate, клацніть на кнопці закриття в його рядку заголовка (або клацніть правою кнопкою миші в будь-якому місці вікна і виберіть Hide з контекстного меню).
Робота з Project Explorer
При роботі в редакторі Visual Basic кожна робоча книга Excel і відкриті в даний момент надбудови розглядаю гея як проекти. Проект можна вважати колекцією об'єктів, організованих у вигляді ієрархічної структури. Ви розкриєте проект, якщо клацнете на знак "плюс" ліворуч від назви проекту у вікні Project Explorer. Проект згортається при натисканні на знак "мінус" ліворуч від назви проекту. Крім того, для розгортання і згортання проекту можна використовувати кнопку ToggleFoldcrs (Показати папки) на панелі інструментів вікна Project Explorer. При спробі розгорнути проект, захищений паролем, відображається вікно введення пароля.
Дерево кожного проекту у розгорнутому вигляді має як мінімум один вузол під назвою Microsoft Excel Objects. У цьому вузлі містяться елементи кожного робочого листа і лист діаграм робочої книги (робочий аркуш вважається об'єктом), а також об'єкт під назвою ЕтаКніга, що представляє об'єкт Active Workbook. Якщо в проекті використовуються модулі VBA, то в дереві відображається також вузол Modules, в якому перераховані модулі. Проект може також містити вузол Forms, який містить об'єкти UserForm (користувальницькі форми, відомі як для користувача діалогові вікна). Якщо в проекті знаходяться модулі класів, то в дереві відображається вузол під назвою Class Modules.
У Excel 2002 при додаванні посилання на проект (за допомогою команди ToolsAReferences) в дереві проекту з'являється ще один вузол: References. Кожне посилання є окремим об'єктом. Об'єкти, перераховані в цьому вузлі, не мають вікна коду.
Додавання нового модуля VBA
Щоб додати в проект новий модуль VBA, виділіть назва проекту у вікні Project Explorer і виберіть команду lnsert - Module (Вставка - Модуль). Також можна клацнути правою кнопкою миші на назві проекту і вибрати команду Insert - Module в контекстному меню. Під час запису макросу Excel автоматично вставляє модуль VBA для зберігання записаного коду.

Видалення модуля VBA
Щоб видалити з проекту модуль VBA або модуль класу, виділіть назву модуля у вікні Project Explorer і використовуйте команду File - Remove ххх (де ххх-назва модуля). Крім того, ви можете клацнути правою кнопкою миші на назві модуля і вибрати команду Remove ххх з контекстного меню.
Експорт і імпорт об'єктів
За винятком об'єктів, перерахованих у вузлі References, кожен об'єкт у проекті можна зберегти в окремому файлі. Збереження окремого об'єкта в проекті називається експортом. Відповідно, ви можете також імпортувати об'єкти в проект. Експорт і імпорт об'єктів корисний, якщо вже існуючий об'єкт (наприклад, модуль VBA або форму UserForm) можна використати в іншому проекті.
Щоб експортувати об'єкт, виберіть його у вікні Project Explorer і виконайте команду File - Export File (або натисніть <Ctrl+E>). При цьому відображається діалогове вікно, запитуюча ім'я файлу. Зверніть увагу, що сам об'єкт залишається у проекті (а експортується тільки його копія). Якщо ви експортуєте об'єкт UserForm, експортується також весь код, пов'язаний з формою UserForm.
Щоб імпортувати файл у проект, виберіть ім'я проекту у вікні Project Explorer і виконайте команду File - Import File. З'явиться діалогове вікно, в якому необхідно вказати ім'я файлу. Ви можете імпортувати тільки ті файли, які експортовані з допомогою команди File-Export File.
Якщо ви вирішили скопіювати в інший проект модуль або об'єкт UserForm, не обов'язково використовувати функції експорту та імпорту. Переконайтеся, що обидва проекти відкриті, потім активізуйте вікно Project Explorer і перетягніть необхідний об'єкт з одного проекту в інший.

Робота з вікнами коду
Кожному об'єкту в проекті відповідає своє вікно коду. Такими об'єктами можуть бути:
• сама робоча книга (ЕтаКніга у вікні Project Explorer);
• робочий аркуш або лист діаграм робочої книги (наприклад. Аркуш1 або Діаграмі 1 у вікні Project);
• модуль VBA;
• модуль класу (спеціальний тип модуля, що дозволяє створювати нові класи об'єктів);
• форма UserForm.
Збереження програми VBA
Як правило, вікно коду містить чотири типи коду.
• Процедури (процедури Sub). Процедура - це набір інструкцій, які виконують певну дію.
• Процедури функції. Функція - це набір інструкцій, який повертає значення або масив значень (концепція функції VB А подібна такий же функції Excel).
• Процедури властивостей. Спеціальні процедури, які використовуються в модулях класів.
Пояснення - це інформація про змінну, що надається VBA. Наприклад, можна оголосити тип даних для змінних, які ви плануєте використовувати в коді.
В окремому модулі VBA може зберігатися будь-яку кількість процедур, функцій та оголошень. Спосіб організації модуля VBA залежить тільки від вашого бажання. Деякі вважають за краще записувати весь код VBA додатки в одному модулі VBA; інші поділяють код на кілька різних модулів.
Незважаючи на те, що надаються широкі можливості за визначенням місця зберігання коду VBA, існують деякі обмеження на його розташування. Процедури обробки подій повинні міститися у вікні коду об'єкта, якому відповідає це подія. Наприклад, якщо ви пишете процедуру, яка виконується при відкритті робочої книги, то ця процедура повинна розташовуватися у вікні коду для об'єкта ЕтаКніга і мати спеціальну назву.
Введення коду VBA
Для того щоб виконати одну з дій програмним чином, необхідно написати програму VBA у вікні коду. Код VBA розташовується у процедурі. Процедура складається з операторів VBA. На даному етапі (для прикладу) зупинимося тільки на одному типі вікна коду: модуль VBA.
Ви можете додати код в модуль VBA трьома способами.
• Ввести код традиційним способом: з клавіатури.
• Використовувати функцію запису макросів в Excel, щоб записати дії і перетворити їх в код VBA.
• Копіювати текст програми з іншого модуля і вставити його в модуль, над яким працюєте.
Введення коду вручну
Іноді найпростіший шлях є найкращим. Безпосереднє введення коду пов'язане з використанням клавіатури, тобто ви вводите код програми за допомогою клавіатури. Клавіша <Таb> при цьому використовується з метою поставити відступ у рядках, які логічно належать одній групі (наприклад, умовні оператори If і End If) - Це абсолютно не обов'язково, але допомагає швидше освоїти програму, аналізуючи її блокову структуру. Саме тому подібний підхід у програмуванні називається '"хорошим стилем".
Введення і редагування коду в модулі VBA виконується звичайним чином. Ви можете виділяти текст, копіювати, вирізати його, а потім вставляти в інше місце програми.
Окрема інструкція в VBA може мати довільну довжину. Однак, щоб забезпечувати легкість для читання коду, довгі інструкції краще розбити на дві чи більше рядків. Для цього слід в кінці рядка ввести пробіл і символ підкреслення, а потім натиснути <Enter> і продовжити інструкцію в наступному рядку. Наприклад, нижче наведений один оператор VBA, розбитий на чотири рядки.
MsgBox "Неможливо знайти" & UCase (SHORTCUTMENUFILE) _
& VbCrLf & vbCrLf & "Файл повинен знаходитися в _
"& ThisWorkbook.Path & vbCrLf & vbCrLf & _
"Можливо, потрібно перевстановити BudgetMan", vb З г iti з a 1, APPNAME
Зверніть увагу, що три останні рядки цього оператора введені з відступом. Це необов'язкова умова, проте таким чином ви вказуєте що насправді ці чотири рядки є одним оператором.
Як і в Excel, в VBE є кілька рівнів скасування виконаних операцій. Тому, якщо ви помилково видалили інструкцію, можете кілька разів клацнути на кнопці Undo (Скасувати) або натиснути <Ctrl+Z>, та інструкція знову з'явиться в коді. Після скасування операції можна клацнути на кнопці Redo (Повернути), щоб повернути зміни, які раніше скасовані. Ця функція допоможе виправити критично важливі помилки, тому не нехтуйте її використанням.
Використання функції запису макросів
Одним із способів створення коду модуля VBA є запис послідовності дій за допомогою спеціальної функції запису макросів Excel.
У наступному прикладі показано, як записати макрос, що змінює орієнтацію сторінки на альбомну. Якщо ви хочете отримати його самостійно, то почніть роботу з порожньою робочої книги і виконайте наступні дії.
1. Активізуйте робочий аркуш у книзі (підійде будь-лист).
2. Виберіть команду Сервіс - Макрос - Почати запис.
При цьому Excel відображає діалогове вікно Запис макросу.
3. Клацніть на кнопці ОК. щоб прийняти параметри за замовчуванням.
Excel автоматично вставляє новий модуль VBA в проект. Починаючи з цього моменту Excel, перетворює ваші дії в код VBA. При записі в рядку стану відображається слово Запис, крім того, у вікно додається невелика плаваюча панель інструментів, яка містить дві кнопки (Зупинити запис і Відносна посилання).
4. Виконайте команду Файл - Параметри сторінки.
Excel відображає діалогове вікно Параметри сторінки.
Виберіть перемикач Альбомна і клацніть на кнопці ОК, щоб закрити діалогове вікно.
Клацніть на кнопці Зупинити запис на панелі інструментів (або виберіть Сервіс-Макрос - Зупинити запис).
Excel припиняє записувати ваші дії.
Щоб переглянути макрос, запустіть VBE (найпростіше натиснути <Alt+F11>) і знайдіть проект у вікні Project Explorer. Клацніть на вузлі Modules, щоб розгорнути його. Потім клацніть на елементі Module 1. щоб відобразити вікно коду (якщо в проекті вже був присутній модуль Module1, новий макрос буде знаходитися в модулі Module2). Код, створений однією командою, представлений в лістингу 1. Якщо ви використовуєте не Excel 2002, а іншу версію, текст програми може трохи відрізнятися.
Лістинг 1. Макрос зміни орієнтації сторінки на альбомну
Sub Макрос1 ()
'Макрос1 Макрос
1 Макрос записаний 19.08.2003
With ActiveSheet.PageSetup
. PrintTitleRows = ""
. PrintTitleColumns = ""
End With
ActiveSheet.PageSetup.PrintArea = "" With ActiveSheet.PageSetup. LeftHeader = "". CenterHeader = "". RightHeader = "n. LeftFooter =" ". CenterFooter =". RightFooter = ""
. LeftMargin = Application JInchesToPoints (0. 787401575). RightMargin = Application.InchesToPoints (0.787401575). TopMargin = Application.InchesToPoints (0.984251969). ButtonMargin = Application.InchesToPoints (0.984251969). HeaderMargin = Application. InchesToPoints (0.5). FooterMargin = Applicatior.InchesToPoints (0.5). PrintHeadings = False. PrintGridlines = False. PrintComments = xlPrintNoComments • PrintQuality = 1200 • CenterHorizontally = False. Center-Vertically = False. Orientation - xlLandscape. Draft = False. PaperSize • xlPaperA4. FirstPageNumber - xlAutoma tic. Order = xlDownThenOver. BlackAndWhite = False
Zoom = 100
. PrintErrors = xlPrintErrorsDisplayed
End With
End Sub
Можливо, вас здивує кількість коду, генерованого всього лише однією командою (особливо якщо ви записуєте макрос вперше). Незважаючи на те, що ви змінили тільки одну просту настройку в діалоговому вікні Параметри сторінки. Excel генерує код. задає всі параметри в цьому діалоговому вікні.
Таким чином, найчастіше програма, отримана під час запису макросу, надмірна. Якщо ви хочете, щоб макрос всього лише змінював орієнтацію сторінки на альбомну, то можна значно спростити макрос, видаливши непотрібний код. Це полегшить сприйняття макросу і прискорить його виконання, оскільки позбавить його від зайвих операцій. Спростити макрос ви вправі до такого вигляду:
Sub Makrocl
With ActiveSheet.PageSetup
. Orientation = xl Landscape
End With End Sub
Ми видалили весь код, крім рядка, що змінює властивість Orientation. Насправді даний макрос можна спростити ще більше, так як конструкція With-End не обов'язкова при зміні лише однієї властивості.
Sub Makrocl
ActiveSheet.PageSetup.Orientation = xlLandscape
End Sub
У даному прикладі макрос змінює властивість Orienation об'єкта PageSetup активного аркуша. Відзначимо, що xlLandscape - це вбудована константа, яка має значення 2. Тому наступний макрос працює як і попередній Makrocl:
Sub Makroc 1
ActiveSheet.PageSetup.Orientation = 2
End Sub
Подібна процедура запроваджується безпосередньо в модуль VBA. але для цього необхідно знати які об'єкти, властивості і методи потрібно використовувати. Очевидно швидше записати макрос. Крім того, даний приклад продемонстрував наявність у об'єкта PageSetup властивість Orientation.
1.2.1 Про об'єкти і колекціях
Працюючи з кодом VBA в Excel, необхідно чітко розуміти призначення об'єктів та об'єктної моделі Excel. Доцільніше розглядати об'єкти з точки зору ієрархічної структури.
Ієрархія об'єктів
На вершині об'єктної моделі знаходяться об'єкт Application - в даному випадку Excel. Але якщо ви програмуєте у VBA, запускаючи VBE в Microsoft Word, то об'єктом Application буде виступати Word.
Об'єкт Application (тобто Excel) містить інші об'єкти. Нижче наведено кілька прикладів об'єктів, які знаходяться в об'єкті Application:
Workbooks (Колекція всіх об'єктів Workbook - робочих книг);
Windows (Колекція всіх об'єктів window - вікон);
Addlns (колекція всіх об'єктів Addln - надбудов).
Деякі об'єкти можуть містити інші об'єкти. Наприклад, колекція Workbooks складається з усіх відкритих об'єктів Workbook, а об'єкт Workbook включає інші об'єкти, деякі з яких представлені нижче:
Worksheets (колекція об'єктів Worksheet - робочих аркушів);
Charts (Колекція об'єктів Chart - діаграм);
Names (Колекція об'єктів Name - імен).
Кожен з цих об'єктів, у свою чергу, може містити інші об'єкти. Колекція
Worksheets складається з усіх об'єктів Worksheet робочої книги Workbook. Об'єкт
Worksheet включає інші об'єкти, серед яких наступні:
ChartObjects (колекція об'єктів ChartQbject - елементів діаграм);
Range - Діапазон;
PageSetup - Параметри сторінки;
PivotTables (колекція об'єктів PivotTable - зведених таблиць).

Про колекції
Однією з ключових концепцій в програмуванні на мові VBA є колекції.
Колекція - Це група об'єктів одного класу (і сама колекція теж є об'єктом).
Як вказувалося вище. Workbooks - це колекція усіх відкритих на цей момент об'єктів Workbook. Worksheets - колекція всіх об'єктів Worksheet, які міститься в конкретному об'єкті Workbook. Ви можете одночасно керувати цілою колекцією об'єктів або окремим об'єктом цієї колекції. Щоб послатися на один об'єкт з колекції, введіть назву або номер об'єкта в дужках після назви колекції:
Worksheets ("Лист1")
Якщо лист Аркуш1 - це перший робочий лист у колекції, то можна використовувати наступне посилання.
Worksheets (1)
На другий аркуш у книзі Workbook посилаються як на Worksheets (2) і т.д.
Крім того, існує колекція з назвою Sheets, складається з усіх листів робочої книги, робочих аркушів та аркушів діаграм. Якщо Аркуш1 - перший аркуш у книзі, то на нього можна послатися так:
Sheets (1)
Посилання на об'єкти
Якщо ви посилаєтесь на об'єкт у VBA, для звернення до нього вводяться назви всіх розташованих вище в ієрархічній структурі об'єктів, розділених крапкою. Що робити, якщо в Excel відкрито дві робочих книги, і в обох є робочий лист з назвою Аркуш1? У цьому випадку на засланні згадується контейнер необхідного об'єкту:
Workbooks ("Книга1"). Worksheets ("Лист1")
Без вказівки робочої книги редактор Visual Basic шукав би лист Л і з т1 в активній робочій книзі, щоб послатися на певний діапазон (наприклад, клітинку А1) на робочому аркуші з назвою Аркуш1 в робочій книзі Книга1, можна використовувати такий вираз:
Workbooks ("Книга 1"). Worksheets ("Лист1"). Range ("Al")
Повна посилання з попереднього прикладу включає об'єкт A pplication і виглядає таким чином:
Application. Workbooks ("К н і г а1"). Worksheets ("Л і з т1"). R ange ("A l")
Однак у більшості випадків можна опускати об'єкт A pplication в посиланнях {крім нього використовуватися більше нема). Якщо об'єкт Книга1 - це активна робоча книга, то опустіть посилання на неї і запишіть розглядається вираз таким чином:
Worksheets ("Лист1"). Range ("Al")
Якщо Аркуш1 є активним робочим листом, можна ще більше спростити вираз:
Range ("A1")
У Excel відсутній об'єкт окремої комірки. Окрема осередок є об'єкт Range, що складається з одного елемента.
Прості посилання на об'єкти (як у наведених прикладах) нічого не виконують. Щоб виконати дію, прочитайте або змініть властивості об'єкта або поставте метод, який виконується по відношенню до об'єкта.
Властивості і методи
Заплутатися у властивостях і методах нескладно: їх існує кілька тисяч. У цьому розділі показано, як здійснюється доступ до властивостей і методів об'єктів.

Властивості об'єктів
Всі об'єкти володіють властивостями. Наприклад, об'єкт Range має властивість з назвою Value. Ви можете створити оператор VBA, щоб відобразити властивість Value або задати властивості Value певне значення. Нижче наведена процедура, яка використовує
функцію VBA MsgBox для відображення вікна, в якому представлено значення клітинки Al листа Аркуш1 активної робочої книги.
Sub ShowValueO
MsgBox Worksheets ("Лист1"). Range ("Al"). Value
End Sub
Код попереднього прикладу відображає поточне значення властивості Value для конкретної комірки - А1 робочого аркуша Аркуш1 активної робочої книги. Зверніть увагу, що якщо в активній книзі відсутній лист з назвою Аркуш1, то макрос видасть помилку.
Що необхідно зробити, щоб змінити властивість Value? Нижче наведена процедура щодо зміни значення клітинки А1 шляхом визначення значення властивості Value.
Sub ChangeValue ()
Worksheets ("Аркуш1). Range (" Al "). Value = 123
End Sub
Після виконання цієї процедури осередок А1 листа Аркуш1 отримує значення 123. Ви можете ввести описані процедури в модуль і протестувати їх.
Багато об'єктів мають властивість за замовчуванням. Для об'єкта Range властивістю за замовчуванням є Value. Отже, вираження value в наведеному вище коді можна опустити, і нічого не зміниться. Однак краще включати посилання на властивість, навіть якщо воно використовується за умовчанням.
Методи об'єктів
Крім властивостей, об'єкти характеризуються методами. Метод - це дія, яка виконується над об'єктом. Нижче наведено простий приклад використання методу Clear по відношенню до діапазону клітинок. Після виконання цієї процедури осередки А1: СЗ листа
Аркуш1 стануть порожніми, і додаткове форматування клітинок буде видалено.
Sub ZapRange ()
W orksheets ("Л і с т 1"). R ange ("A l: C 3"). C lear
End Sub
Якщо необхідно видалити значення в діапазоні, але залишити форматування, використовуйте метод C lear C ontents об'єкта Range.
Багато методів отримують аргументи, що визначають виконуються над об'єктом дії більш детально. Далі наводиться приклад, в якому осередок А1 копіюється в комірку В1 за допомогою методу Сміттю об'єкта Range. У даному прикладі метод Сміттю отримує один аргумент (адреса осередку, в яку слід скопіювати дані). Зверніть увагу що у прикладі використовується символ продовження рядка (пробіл і підкреслення). Ви можете не застосовувати цього символу, а ввести оператор в один рядок.
Sub CopyOne ()
Worksheets ("Лист1"). Range ("Al"). Copy _
Worksheets ("Лист1"). Range ("Bl")
End Sub

Визначення аргументів методів і властивостей
У середовищі програмістів VBA визначення аргументів методів і властивостей часто викликає певні труднощі. Деякі методи використовують аргументи для подальшого уточнення дії; окремі властивості використовують аргументи для подальшого визначення значення властивості. Іноді один чи кілька аргументів взагалі застосовувати не обов'язково.
Якщо метод використовує аргументи, вони вказуються після назви методу і розділяються комами. Якщо метод використовує необов'язкові аргументи, то можете пропустити їх, залишивши порожні місця. Розглянемо метод Protect об'єкта робочої книги. У довідковій системі дається інформація про те, що метод Protect має три аргументи: пароль, структура, вікна.
Ці аргументи відповідають параметрам у діалоговому вікні Захист книги.
Наприклад, якщо потрібно захистити робочу книгу під назвою MyBook.xls, використовуйте такий оператор:
Workbooks ("MyBook.xls"). Protect "xyzzy", True, False
У даному випадку робоча книга захищена паролем (аргумент 1). Також захищена структура робочої книги {аргумент 2), але не її вікна (аргумент 3).
Якщо ви не хочете привласнювати пароль, можна застосувати такий оператор:
Workbooks ("MyBook.xls"). Protect, True, False
Зверніть увагу, що перший аргумент пропущено, а його місце позначене з допомогою коми.
Існує й інший підхід (причому в цьому випадку програму зручніше буде читати) - використання іменованих аргументів. Застосуємо іменовані аргументи для попереднього прикладу.
Workbooks ("MyBook.xls"). Protect Structure: = True, Windows: = False
Використання іменованих аргументів - хороша ідея, особливо в методах з великою кількістю необов'язкових аргументів, коли варто використовувати тільки деякі з них. При використанні іменованих аргументів не потрібно залишати місце для пропущених аргументів.
Для властивостей, використовують аргументи, аргументи вказуються в дужках. Наприклад, властивість Address об'єкта Range має п'ять аргументів-всі необов'язкові. Показаний нижче оператор некоректний, оскільки пропущені дужки:
MsgBox Range ("Al"). Address False 'некоректно
Правильний сінтаксісдля цього оператора виглядає так:
MsgBox Range ("Al"). Address (False)
Крім того, оператор може записуватися з використанням іменованого аргументу
MsgBox Range ("Al"). Address (rowAbsolute: = False).
Об'єкт Comment: приклад використання
Щоб краще розібратися з властивостями і методами об'єкта, зосередимося на вивченні конкретного об'єкта-Comment. Об'єкт Comment створюється за допомогою команди Excel Вставка ^ Примечание і призначається для вставки коментаря в осередку.
Довідкові відомості по об'єкту Comment можна знайти в інформації про конкретний об'єкт в електронній довідковій системі.
Використання електронної довідкової системи
Найпростіший спосіб отримати довідку про конкретний об'єкт, властивості чи методі - ввести ключове слово у вікні коду і натиснути <F1>. Якщо це ключове слово трактується неоднозначно, з'являється діалогове вікно вибору теми.
На жаль, елементи, перераховані в цьому діалоговому вікні, не завжди зрозумілі, тому, щоб знайти потрібний розділ, часто доводиться звертатися до методу проб і помилок.
Для випадку введення Comment і натиснення <F1> Comment є об'єктом, однак він може також вести себе як властивість. При натисканні на першій темі відображається розділ, присвячений об'єкту Comment; якщо ви клацнете на другій темі, то побачите розділ для властивості Comment.
Властивості об'єкта Comment
Об'єкт Comment володіє шістьма властивостями. Якщо властивість доступна тільки для читання, це означає, що програма VBA може тільки отримувати властивість, але не змінювати його.
Властивість Тільки для Опис
читання
A pplicatio n Та Повертає об'єкт, що представляє програму, де створювалося
примітка (тобто Excel)
Author Так Повертає ім'я людини,
створив примітка
Сreator Так Повертає число, яке вказує додаток, в якому створювався об'єкт. Не використовується в Excel для Windows (застосовується тільки в Excel для Macintosh)
P arentnbsp; Та Повертає батьківський об'єкт для примітки (це завжди об'єкт Range)
Shape Так Повертає об'єкт Shape, який представляє форму, приєднану до
примітки
Visible Ні Якщо ця властивість має значення True, то примітка відображається на екрані
Методи об'єкта Comment
У таблиці наведено методи, які можна використовувати в об'єкті Comment. Всі вони виконують звичайні операції, які проводяться над приміткою вручну. Проте ви ніколи раніше не розглядали ці дії як методи.
Таблиця 1. Методи об'єкта Comment
Метод Опис
D eletenbsp; Видаляє коментар
Next Повертає об'єкт Comment, представляє наступний коментар
P reviou s Повертає об'єкт Comment, що представляє попередній коментар
Text Повертає або визначає текст в коментарі (метод має три аргументи)
Можливо, вас здивувало, що T ext - це метод, а не властивість. Цей формат приводить нас до важливого висновку: відмінності між властивостями і методами не завжди чіткі, а об'єктна модель не є ідеально послідовною. Насправді неважливо, наскільки точно ви будете розрізняти властивості і методи.
Поки використовується правильний синтаксис, не має значення, яку роль в коді виконує ключове слово - властивості або методу.

Колекція Comments
Колекція - це група однакових об'єктів. Кожен робочий лист має колекцію Comments, що складається з усіх об'єктів Comment робочого аркуша. Якщо на робочому листі відсутні примітки, ця колекція порожня.
Наприклад, наведений далі код посилається на перше примітка листа Аркуш1 активної робочої книги
Worksheets ("Лист1"). Comments (1)
Наступний оператор відображає текст, який міститься в першому примітці листа Лісг1:
MsgBox Worksheets ("Лист1"). Comments (1). Text
На відміну or більшості об'єктів, об'єкт Comment не має властивості Name. Отже, щоб послатися на конкретний коментар, використовуйте номер, а для отримання необхідного коментаря зверніться до властивості Comment об'єкта Range.
Колекція Comments - теж об'єкт, що має власний набір властивостей і методів.
Наприклад, наступний приклад визначає загальна кількість коментарів:
MsgBox ActiveSheet.Comments.Count
У даному випадку використовується властивість Count колекції Comments, в якому зберігається кількість об'єктів Comment на активному робочому аркуші. У наступному прикладі показаний адресу комірки, що містить перший примітка:
MsgBox ActiveSheet.Comments (1). Parent.Address
У цьому прикладі Comments (1) повертає перший об'єкт Comment колекції Comments. Властивість P arent об'єкта Comment повертає його контейнер, представлений об'єктом Range. У вікні повідомлень відображається властивість A ddress об'єкта Range. У результаті оператор показує адресу комірки, що містить перший примітка.
Крім того, ви можете циклічно проглянути всі примітки на аркуші, використовуючи конструкцію For Each-Next. Нижче наведено приклад використання окремих вікон для роздільного відображення кожного примітки активного робочого аркуша:
For Each cmt in ActiveSheet.Comments
MsgBox cmt.Text
Next cmt
Якщо ви не хочете, щоб на екрані знаходилася велика кількість діалогових вікон з повідомленнями, то використовуйте наступну процедуру для виведення всіх приміток в одному вікні Intermediate:
For Each cmt in ActiveSheet.Comments
Debug.Print cmt.Text
Next cmt

Про властивості Comment
У цьому розділі мова йде про об'єкт Comment. У довідковій системі зазначено, що об'єкт Range має властивість Comment. Якщо комірка містить примітку, властивість Comment повертає об'єкт-об'єкт Comment. Наприклад, наступний оператор посилається на об'єкт
Comment осередку Al:
Range ("Al"). Comment
Якщо це перше примітка на аркуші, то на даний об'єкт Comment можна послатися наступним чином:
Comments (1)
Щоб відобразити примітку осередку Al у вікні повідомлення, використовуйте оператор MsgBox Range ("Al"). Comment.Text
Якщо в комірці Al немає примітки, то оператор видасть помилку.
Той факт, що властивість може повертати об'єкт, досить важливий (можливо, це складно зрозуміти, але дана концепція має вирішальне значення в програмуванні на VBA).
Об'єкти, вкладені в Comment
Управління властивостями спочатку здається складним завданням, тому що деякі властивості повертають об'єкти. Припустимо, необхідно визначити колір фону конкретного примітки на аркуші Аркуш1. Переглянувши список властивостей об'єкта Comment, ви не знайдете нічого, що відноситься до визначення кольору. Замість цього виконайте наступні дії.
1. Використовуйте властивість Shape об'єкта Comment, повертає об'єкт Shape, який міститься в примітках.
2. Використовуйте властивість F ill об'єкта Shape, повертає об'єкт FillFormat
3. Використовуйте властивість ForeColor об'єкта FillFormat, повертає об'єкт ColorFormat,
4. Використовуйте властивість RGB (або властивість SchemeColor) об'єкта ColorFormat, щоб задати колір.
Інакше кажучи, отримання кольору фону об'єкта Comment пов'язано з доступом до інших об'єктів, які в ньому містяться. Нижче описана ієрархія задіяних об'єктів.
Application (Excel)
Workbook
Worksheet
Comment
Shape
FillFormat
ColorFormat
Слід попередити, що в цьому можна легко заплутатися! Але як приклад "еле-
гантності "VBA подивіться, як код для зміни кольору примітки можна записати за допомогою одного оператора:
Worksheets ("Лист1"). Comments (1). Shape.Fill.ForeColor _
. RGB = RGB (0, 255, 0)
Ви маєте право використовувати також властивість SchemeColor (задається в діапазоні від 0 до 80):
W orksheets ("Л і с т 1"). C omments (1). S hape. F ill _. F ore C olo r.SchemeColor = 12
У даному типі посилання відразу важко розібратися, але згодом нескладно буде орієнтуватися в ієрархії об'єктів, так як в Excel при запису послідовності дій практично завжди питання ієрархії задіяних об'єктів ставиться на першому місці.

Бентежать кольору?
Колір, який ви задаєте в коді VBA, не завжди відповідає тому, який з'являється на екрані. Ситуація завжди може ускладнитися ще більше. У залежності від об'єкта, з яким ви працюєте, де для завдання кольору використовуються різні об'єкти і властивості.
Колір об'єкта Shape можна задати за допомогою властивості RGB або властивості SchemeColor.
Властивість RGB дозволяє визначити колір у вигляді значень червоного, зеленого і синього компонентів. Це властивість аналогічно функції RGB, що має три аргументи, кожен з яких задається в діапазоні від 0 до 255. Функція RGB повертає значення в діапазоні від 0 до 16777215. Але Excel може обробляти тільки 56 кольорів. Тому фактичний колір, отриманий при використанні функції RGB, буде найбільш точним відповідністю заданому кольору із 56-колірної палітри робочої книги.
Властивість SchemeColor приймає значення від о до 80. У довідковій системі ви не знайдете нічого про те, що насправді являють собою ці кольори. Однак вони обмежені зразками кольорів на палітрі робочої книги.
При роботі з квітами в об'єкті Range вам доведеться звернутися до його вкладеному об'єкту I nterior. Ви можете задати колір за допомогою однієї з властивостей останнього: Color або Color Index. Коректні значення властивості Colorindex знаходяться в діапазоні від 0 до 56 (0 означає відсутність заливки). Ці значення відповідають палітрі кольорів робочої книги. На жаль, порядок, в якому відображаються кольору, абсолютно не пов'язаний з системою нумерації значень властивості Colorindex, тому для визначення за допомогою ColorIndex конкретного кольору краще записати макрос, Однак навіть у цьому випадку не буде гарантії, що користувач не змінив кольорову палітру робочої книги. В останньому випадку властивість Colorindex видасть далеко не той результат, який ви очікували.
При використанні властивості Color можна визначити значення кольору з допомогою функції RGB. Однак пам'ятайте, що фактично відображається колір буде всього лише найближчим кольором на палітрі робочої книги, який відповідає заданим вами значенням.
До речі, щоб змінити колір тексту в примітці, зверніться до об'єкта TextFrame
об'єкта Comment, який містить об'єкт Characters, що включає, у свою чергу, об'єкт Font. Далі зверніться до властивостей Color або Colorindex об'єкта Font. Нижче наведено приклад, який встановлює властивість Colorindex в значення 5:
Worksheets ("Лист1"). Comments (1). _
Shape.TextFrame.Characters.Font.Colorindex = 5

Чи містить осередок примітка
Наступний оператор відображає примітка осередку А1 активного листа:
MsgBox Range ("Al"). Comment.Text
Якщо в комірці А1 примітка відсутня, при виконанні цього оператора виникне не-зрозуміле повідомлення про помилку:
Object variable or With block variable not set.
Щоб визначити, чи містить конкретна осередок примітка, напишіть код, перевіряючий, не порожній чи об'єкт Comment, - тобто дорівнює чи він N othing (це коректне ключове слово VBA). Наступний оператор відображає True, якщо в комірці А1 примітка відсутній:
MsgBox Range ("Al"). Comment Is Nothing
Зверніть увагу, що в цьому прикладі використовується ключове слово I s, а не знак рівності.
Додавання нового об'єкта Comment
У списку методів об'єкта Comment немає методу для додавання нового примітки. Це пояснюється тим, що метод AddComment належить об'єкту Range. Наступний оператор додає примітку (порожнє) у клітинку А1 активного робочого аркуша:
Range ("Al"). AddComment
Звернувшись в довідкову систему, ви виявите, що метод AddComment має аргумент, що представляє текст примітки. Отже, можна додати примітку і текст у ньому за допомогою всього одного оператора:
Range ("Al"). AddComment "Формула розроблена JW"
Метод AddComment генерує помилку, якщо осередок вже містить примітку.
Якщо ви хочете побачити розглянуті властивості і методи об'єкта Comment в дії, подивіться приклад на Web-Уеле. Робоча книга у відповідному файлі містить кілька прикладів управління об'єктами Comment за допомогою коду VBA. Швидше за все, ви не зрозумієте весь код, але на даному етапі усвідомлюєте, як можна використовувати VBA для роботи з об'єктом.
Корисні властивості об'єкта Application
Як відомо, при роботі в Excel активної одночасно може бути тільки одна робоча книга. І якщо ви керуєте робочим листом, то активна на ньому лише одна клітинка (навіть якщо виділений діапазон).
VBA це відомо, тому ви можете посилатися на активні об'єкти більш простим методом. Це зручно, так як ви не завжди знаєте, з якою саме робочою книгою, робочим листом або осередком будете працювати. VBA представляє властивості об'єкта Application для визначення цього. Наприклад, об'єкт Application має властивість ActiveCell, що повертає посилання на активну клітинку. Наступна інструкція присвоює значення 1 активної клітинці:
ActiveCell.Value = 1
Зверніть увагу, що в цьому прикладі пропущено посилання на об'єкт
A pplication, так як це само собою зрозуміло. Важливо зрозуміти, що така інструкція може відмовити коли активний лист не є робочою. Наприклад, якщо VBA виконує цей оператор, коли активний лист діаграми, то процедура припиняє виконуватися, а на екрані відображається повідомлення про помилку.
Якщо на робочому листі виділено діапазон клітинок, то активна комірка буде перебувати у виділеному діапазоні. Іншими словами, активна комірка завжди одна (їх ніколи не буває декілька).
Об'єкт A pplication також має властивість S election, що повертає посилання на виділений об'єкт, тобто окрему клітинку (активну), діапазон клітинок або об'єкт типу ChartObject, TextBox або Shape.
У табл. 2 перераховані властивості об'єкта A pplication, які корисні при роботі з осередками та діапазонами клітинок.
Таблиця 2. Деякі корисні властивості об'єкта Application
Властивість повертається об'єкт
ActiveCell Активна клітинка
ActiveChart Активний лист діаграми або об'єкт діаграми на робочому аркуші. Якщо діаграма не активна, то властивість одно Nothing
Activesheet Активний лист (робочий аркуш або лист діаграми)
Activewindow Активне вікно
ActiveWorkbook Активна робоча книга
RangeSeiection Виділені клітинки на робочому листі в заданому вікні, навіть якщо виділений графічний об'єкт (насправді це властивість об'єкта Window)
Selection Виділений об'єкт (об'єкт Range, Shape, і т.д.) ChartObject
Thisworkbook Робоча книга, яка містить виконувану процедуру
Перевага використання цих властивостей для отримання об'єкта полягає в тому, що зовсім не обов'язково знати, яка осередок, робочий лист або книга є активними і вводити конкретну посилання на цей об'єкт. Даний факт дозволяє створювати код VBA, який не обмежується конкретною книгою, листом або осередком. Наприклад, така інструкція видаляє вміст активної комірки, навіть якщо адреса активної клітинки не відомий:
ActiveCell.ClearContents
У наступному прикладі відображається повідомлення, що вказує ім'я активного листа:
MsgBox ActiveSheet.Name
Якщо потрібно дізнатися назву активної робочої книги, використовуйте такий оператор:
MsgBox ActiveBook.Name
Якщо на робочому листі виділено діапазон, то заповніть цей діапазон одним значенням, виконавши єдиний оператор. У наступному прикладі властивість S electi on об'єкта Application повертає об'єкт Range, відповідний виділених клітинок. Оператор змінює властивість Value цього об'єкта Range, і в результаті виходить діапазон, заповнений одним значенням.
Selection.Value = 12
Зверніть увагу: якщо виділений не діапазон комірок (наприклад, об'єкт ChartObject або Shape), то цей оператор видасть помилку, тому що об'єкти ChartObject і Shape не мають властивість Value.
Однак наведений нижче оператор, привласнює об'єкту Range, який виділявся перед виділенням іншого об'єкта (відмінного від діапазону комірок), значення 12. У довідковій системі зазначено, що властивість RangeSelection відноситься тільки до об'єкта Window:
ActiveWindow.RangeSelection.Value = 12
Щоб дізнатися, скільки клітинок виділено на робочому аркуші, застосовується властивість Count: MsgBox ActiveWindow.RangeSelection.Count
                       
Робота з об'єктами Range
В основному, робота, яка виконується в VBA, пов'язана з управлінням осередками і і апазоне на робочих аркушах, що і є основним призначенням електронних таблиць.
Об'єкт Range міститься в об'єкті Worksheet і складається з однієї клітинки або діапазону клітинок на окремому робочому аркуші. У наступних розділах будуть розглянуті три способи завдання посилання на об'єкти Range у програмі VBА.
• Властивість Range об'єкта класу Worksheet або Range.
• Властивість Cells об'єкта Worksheet.
• Властивість Offset об'єкта Range.

Властивість Range
Властивість Range повертає об'єкт Range. З довідкових відомостей по властивості Range можна дізнатися, що до даного властивості звертаються за допомогою декількох варіантів синтаксису:
        об'єкт. Range (ячейка1);
        об'єкт. Range (ячейка1, ячейка2).
Властивість Range відноситься до одного з двох типів об'єктів: об'єкту Worksheet чи об'єкту Range. У даному випадку ячейка1 і ячейка2 вказують параметри, які Excel буде сприймати як ідентифікують діапазон (у першому випадку) або окреслюють діапазон (у другому випадку). Нижче слідує декілька прикладів використання методу Range.
Далі наведена інструкція, яка вводить в зазначену клітинку: значення 1 вводиться в клітинку А1 на аркуші Лист1 активної робочої книги:
Worksheets ("Лист1"). Range ("Al"). Value = 1
Властивість Range також підтримує імена, визначені у робочих книгах. Тому якщо осередок називається Введення, то для введення значення в цей осередок може використовуватися оператор
Worksheets ("Лист1"). Range ("Введення"). Value = 1
У наступному прикладі в діапазон з 20-ти комірок на активному аркуші вводиться однакове значення. Якщо активний лист не є робочим листом, то відображається повідомлення про помилку:
ActiveSheet.Range ("A1: B10"). Value = 2
Наведений нижче приклад приведе до того ж результату, що і попередній.
Range ("Al", "B10") = 2
Відмінність полягає лише в тому, що опушена посилання на лист, тому передбачається активний робочий лист. Крім того, пропущено властивість, тому використовується властивість за замовчуванням (для об'єкта Range це властивість Value). У цьому прикладі використовується другий синтаксис посилання на властивість Range. У даному випадку перший аргумент - це ліва верхня клітинка діапазону, а другий аргумент-его осередок у правому нижньому куті діапазону.
У наступному прикладі для отримання перетину двох діапазонів застосовується оператор перетину Excel (пропуск). Перетином є одна комірка-С6. Отже, даний оператор вводить значення 3 в клітинку С6:
Range ("С1: С10 А6: Е6") = 3
Нарешті, в наступному прикладі значення 4 вводиться в п'ять осередків, тобто в незалежні діапазони. Кома виконує роль оператора об'єднання:
Range ("Al, A3, А5, А7, А9") = 4
До теперішнього моменту в усіх розглянутих прикладах використовувалося властивість Range об'єкта Worksheet. Нижче показаний приклад використання властивості Range об'єкта Range (в даному випадку об'єктом Range є активна клітинка). У цьому прикладі об'єкт Range розглядається як ліва верхня клітинка на робочому аркуші, а потім у клітинку, яка в такому випадку була б В2, вводиться значення 5. Іншими словами, отримана посилання є відносною для верхнього лівого кута об'єкта Range. Отже, наступний оператор вводить значення 5 в клітинку, розташовану справа внизу від активної клітинки:
ActiveCell.Range ("B2") = 5
Існує також набагато більш зрозумілий спосіб звернутися до осередку по відношенню до діапазону-це властивість O ffset (див. далі).
Властивість Cells
Іншим способом послатися на діапазон є використання властивості Cells. Як і Range, можна використовувати властивість Cells в об'єктах Worksheet і Range. Довідкова система вказує на три варіанти синтаксису властивості C ells:
об'єкт. Cells (номер_строкі, номер_столбпа);
об'єкт. Cells (номер_строкі);
об'єкт. Cells.
Проілюструємо на прикладах особливості застосування властивості Cells. Спочатку в клітинку Al листа Аркуш1 введемо значення 9. У даному випадку використовується перший синтаксис, де аргументами є номер рядка (від 1 до 65536) та номер стовпчика (від 1 до 256):
Worksheets ("Лист1"). Cells (1, 1) = 9
Нижче наведено приклад, в якому значення 7 вводиться в клітинку D3 (тобто перетин
рядка 3, стовпця 4) активного робочого аркуша:
ActiveSheet.Cells (3, 4) = 7
Можна також використовувати властивість Cells об'єкта Range. При цьому об'єкт Range, що повертається властивістю Cells, задається щодо верхньої лівої клітинки діапазону Range, на який ми посилаємося. . Наступна інструкція вводить значення 5 в активну клітинку. Пам'ятайте, що в даному випадку активна комірка розглядається як осередок Al на робочому листі:
ActiveCell.Cells (1,1) = 5
Це зручно, коли мова піде про змінних і циклах. У більшості
випадків в аргументах не буде використовуватися фактичне значення. Замість нього використовується змінна.
Щоб ввести значення 5 в клітинку, яка знаходиться під активною, можна зверніться до такої інструкції:
ActiveCell.Cells (2, 1) = 5
Попередній приклад можна описати так - необхідно почати з активного осередку, розглядаючи її як осередок Al. Потім звернутися до осередку в другому рядку і першому стовпці.
Цей синтаксис можна використовувати і з об'єктом Range. У такому випадку буде отримана осередок по відношенню до вказаного об'єкту Range. Наприклад, якщо об'єкт Range - це діапазон Al: D10 (40 осередків), то властивість Cells може мати аргумент від I до 40 і повертати один з осередків об'єкта Range. У наступному прикладі значення 2000 вводиться в клітинку А2, так як А2 є п'ятою осередком (рахуючи зверху направо, потім вниз) у вказаному діапазоні:
Range ("Al: D10"). Cells (5) = 2000
У попередньому прикладі аргумент властивості Cells не обмежений значеннями між 1 і 40. Якщо аргумент перевищує кількість осередків у діапазоні, рахунок продовжується, ніби діапазон більше, ніж він є насправді, Отже, оператор, подібний до попереднього, може змінити значення клітинки, яка знаходиться за межами зазначеного діапазону A l: D10.
Третій синтаксис властивості Cells повертає всі осередки на зазначеному робочому аркуші.
На відміну від двох інших, в цьому синтаксисі, одержувані в результаті дані - не одна клітинка, а цілий діапазон. У наведеному нижче прикладі використано метод ClearContents по відношенню до діапазону, отриманого за допомогою властивості Cells для активного робочого аркуша. У результаті буде видалено вміст кожної комірки на робочому листі:
ActiveSheet.Cells.ClearContents

Властивість Offset
Властивість Offset (подібно властивостям Range і Cells) також повертає об'єкт Range.
На відміну від розглянутих вище властивостей, Offset застосовується тільки до об'єкта Range і ні до якого іншого. Дана властивість використовує єдиний синтаксис:
об'єкт. Offset (сдвіг_строкі, сдвіг_столбца)
Два аргументу властивості Offset відповідають змішання щодо верхньої лівої клітинки зазначеного діапазону Range. Ці аргументи можуть бути позитивними (зсув вниз або вправо), негативними (вгору або вліво) або нульовими. У наведеному нижче прикладі значення 12 вводиться в клітинку, яка знаходиться під активною клітинкою:
ActiveCell.Offset (l, 0). Value = 12
У наступному прикладі значення 15 вводиться в клітинку над активною клітинкою:
ActiveCell.Offset (-l, 0). Value = 15
Якщо активна клітинка знаходиться в рядку 1, то властивість Ofset в попередньому прикладі видає помилку, так як воно не повертає неіснуючий об'єкт Range.
Властивість Offset особливо ефективно при використанні змінних в циклі.
У процесі запису макросу у відносному режимі вказання посилання Excel використовує властивість Offset для звертання до комірок відносно початкової позиції (тобто активною в момент початку запису макросу осередки). Наприклад, для генерації наступного коду використана функція запису макросів. Спочатку запишемо макрос (за активної комірці В1), потім
введемо значення в осередки В1: ВЗ, а потім знову повернемося до осередку В1:
Sub Macrol ()
ActiveCell.FormulaRlCl = "1"
ActiveCell.Offset (1, 0). Range ("Al"). Select
ActiveCell.FormulaRlCl = "2"
ActiveCell.Offset (1, 0}. Range ("Al"). Select
ActiveCell.FormulaRlCl = "3"
ActiveCell.Offset (-2, 0). Range ("Al"). Select
End Sub
Під час запису макросів використовується властивість FormulaRlCl. Як правило, для введення значення в клітинку застосовується властивість Value. Однак при використанні FormulaRlCl або Formula результат буде таким самим.
Також зверніть увагу, що отриманий код посилається на клітинку Al, що досить
дивно, так як цей осередок навіть не була задіяна в макросі. Дана особливість процедури запису макросів робить програму навіть більш складною, ніж необхідно. Ви можете видалити всі посилання на Range ("А1"), і макрос все одно буде працювати нормально:
Sub Modified Macro1 ()
ActiveCell.FormulaRlCl = "1"
ActiveCell.Offset (1, 0). Select
ActiveCell.FormulaRlCl = "2"
A ctive C ell. O ffset (1, 0). S elect
ActiveCell.FormulaRlCl = "3"
A ctive C ell. O £ fset (- 2, 0). S elect
End Sub
Ви можете отримати ще більш ефективну версію макросу (наприклад ту, яку я
написав вручну), де взагалі не виконується виділення:
Sub Macrol ()
ActiveCell = 1
ActiveCell.Offset (1. 0) = 2
ActiveCell.Offset (-2, 0) = 3
End Sub
Використовуйте запис дій
Безсумнівно, найкращий спосіб познайомитися з VBA-включити функцію запису макросів і записати окремі дії, виконані в Excel. Це швидкий метод дізнатися, які об'єкти, властивості і методи відносяться до конкретного завдання. Буде краще, якщо при записі відображається вікно модуля VBA, в якому представлений записуваний код.
Використовуйте електронну довідкову систему
Основне джерело докладної інформації про об'єкти, методи та процедури Excel - це електронна довідкова система.
Використовуйте броузер об'єктів
Вікно Object Browser (Броузер об'єктів) - це зручний інструмент, що надає список всіх властивостей і методів для всіх доступних об'єктів. У VBE вікно Object Browser можна відобразити одним з трьох способів.
• Натиснути <F2>.
• Вибрати в рядку меню команду View - Object Browser.
• Клацнути на кнопці Object Browser на стандартній панелі інструментів.
Броузер об'єктів - повний довідковий ресурс
Список, що випадає в лівому верхньому кутку вікна Object Browser містить список всіх бібліотек об'єктів, до яких у вас є доступ,
• Власне Excel.
• MSForms (використовується для створення спеціальних діалогових вікон).
• Office (об'єкти, загальні для всіх додатків Microsoft Office).
• S tdole (об'єкти автоматизації OLE).
• VBA.
• Всі відкриті робочі книги (кожна книга вважається бібліотекою об'єктів, тому що містить об'єкти).
Ваш вибір в цьому списку визначає, що відображається у вікні Classes (Класи), а вибір у вікні Classes зумовить появу певних компонентів у вікні Members of (Включені в).
Після вибору бібліотеки можна здійснити пошук конкретної рядки тексту, чтобs отримати список властивостей і методів, що містять даний текст. Це можна зробити, ввівши текст в другому списку і клацнувши на значку із зображенням бінокля.
Припустимо, що виробите над проектом, який обробляє примітки в осередках. 1. Виберіть цікавить вас бібліотеку. Якщо ви не впевнені, яку саме бібліотеку вибрати, вкажіть варіант <All Libraries>.
2. Введіть Comment у випадаючому списку під списком бібліотек.
3. Клацніть на значку у вигляді бінокля, щоб почати пошук тексту.
У вікні Search Results (Результати пошуку) відображається текст, що відповідає фрагменту для пошуку. Виберіть один об'єкт, щоб відобразити його класи у вікні Classes. Вкажіть клас, щоб відобразити його члени (властивості, методи і константи). Зверніть увагу на нижню частину вікна, де дається додаткова інформація про об'єкт. Ви можете натиснути <F1>, щоб перейти безпосередньо до необхідного розділу довідкової системи.
Система Object Browser може спочатку здатися складним, але, вивчивши її ви переконаєтеся в її незамінності.

Експериментуйте з вікном Immediate
Як було відзначено в урізанні в одному з попередніх розділів цієї глави, вікно Immediate в VBE використовується для тестування операторів та перевірки різних виразів
VBA. Рекомендується відображати вікно Immediate, так як воно часто використовується для про-
перевірки виразів і при налагодженні коду.
1.2.2 Приклади на використання VBA в середовищі Excel
Об'єктна модель
Об'єктна модель MS Excel являє собою ієрархію об'єктів, підпорядкованих одному об'єкту Application, який відповідає самому додатком Excel. Багато з цих об'єктів зібрані в бібліотеці об'єктів Excel, але деякі з них, наприклад, об'єкт Assistant, входять в бібліотеку об'єктів Office, яка є спільною для всіх офісних додатків.
Об'єкт Application
Об'єкт Application - це головний (кореневий) об'єкт в ієрархії об'єктів MS Excel, що представляє сам додаток MS Excel. Він має величезне число властивостей і методів, які дозволяють встановити загальні параметри програми MS Excel.

Властивості об'єкта Application
Об'єкт Application, завдяки великої колекції властивостей, дозволяє програмно встановити значення багатьох опцій вікна Параметри, відображуваного при виборі команди Сервіс - Параметри. Крім того, він забезпечує доступ до об'єктів верхнього рівня типу ActiveCell, ActiveSheet і т.д. Перелічимо основні властивості цього об'єкту:
ActiveCell ActiveChart
AcfcivePrinter ActiveSheet
ActiveWorkBook AddIns
CellDragAndDrop Charts
Cursor DefaultFilePath
DefaultWebOptions DisplayAlerts
DisplayFormulaBar DisplayScrollBars
EditDirectlylnCell FileSearch
Height LibraryPath
MemoryTotal Names
Organ i zat ionName ProductCode
Referencestyle Selection
StatusBar Top
UsableWidth Version
Windows WorksheetFunction
Сімейство вбудованих діалогових вікон
Властивість Dialogs повертає сімейство всіх вбудованих діалогових вікон. Параметр цього сімейства ідентифікує ВІКНО, метод Show відображає його на екрані, а параметри цього методу задають параметри, спеціфіціруемий у видимій вікні. Метод show повертає значення True, якщо завдання, поставлене у видимій частині вікні, була виконана успішно. Наприклад, наступний код (лістинг 2) відображає вікно Відкриття документа для відкриття книги C: \ test.xls.
Лістінг2. Відкриття книги за допомогою вбудованого вікна
Sub DemoDialogs () Dim idx As Long
idx = Application.Dialogs (xlDialogOpen). Show ("з: \ test.xls") If idx Then
MsgBox "Файл відкритий" Else
MsgBox "Файл не відкритий" End If
End Sub.
Об'єкт FileDialog
Об'єкт FileDialog, що повертається властивістю FileDialog об'єкта Application, надає в розпорядження розробника діалогові вікна Відкрити і Зберегти як. Властивість FileDialog має один параметр DiaiogType. задає тип вікна. У цього параметра є чотири допустимих значення:
msoFileDialogFiiePicker - дозволяє користувачеві вибрати файл;
msoFileDialogFolderPicker - дозволяє користувачеві вибрати папку;
msoFileDialogopen - дозволяє користувачеві відкрити вибраний файл. Відкриття файлу здійснюється методом Execute;
msoFileDialogsaveAs - дозволяє користувачеві зберегти файл. Збереження файлу здійснюється методом Execute.
Для відображення вікна, сімуліруемого об'єктом FileDialog, необхідно скористатися методом show. Цей метод повертає значення 0, якщо натиснута кнопка Скасування і значення -1, якщо натиснута інша функціональна кнопка. Для вікон Відкрити і Зберегти як після застосування треба скористатися методом Execute для реалізації обраної команди.
І в наступних трьох прикладах демонструється техніка збереження і завантаження файлу за допомогою вікон, що мають типи msoFileDialogFilePicker (ЛІСТІНГ3), msoFileDialogOpen (Лістинг 4) І msoFileDialogSaveAs (Лістинг 5).

Лістинг 3. Завантаження файлів за допомогою вікна msoFiieDiaiogFiiePicker
Sub LoadFiles ()
Dim fd As FileDialog
Set fd = Application.FileDialog (msoFileDialogFilePicker) Dim itm As Variant With fd
If. Show = -1 Then
For Each itm In. Selectedlterns
Workbooks.Add itm Next End If End With
Set fd = Nothing
End Sub
Лістинг 4. Завантаження файлу з допомогою вікна msoFileDialogOpen
Sub LoadFile ()
Dim fd As FileDialog
Set fd = Application.FileDialog (msoFileDialogOpen) If fd.Show = -1 Then
fd.Execute Else
MsgBox "Вибрали скасування" End If
Set fd = Nothing
End Sub.
Лістинг 5. Збереження файлу з допомогою вікна msoFileDialogSaveAs
Sub SaveFile ()
Dim fd as FileDialog
Set fd = Application.FileDialog (mso FileDialogSaveAs)
If fd.Show = -1 then
Fd.Execute
End Sub.
Пошук файлів
Властивість FileSearch об'єкта Application повертає об'єкт FileSearch, який інкапсулює і собі властивості і методи, що реалізують пошук специфікованого файлу на диску. Перелічимо основні властивості об'єкта FileSearch:
- Властивість LookIn повертає або встановлює каталог, в якому проводиться пошук.
- Властивість FileType повертає або встановлює тип шуканого файлу. Його допустимим значенням може бути одна з наступних констант:
msoFileTypeAllFiles
msoFileTypeCalendarItems
msoFileTypeCustom
msoFileTypeDataConnectionFiles
msoFileTypeDocumentImagingFiles
msoFileTypeJournaItem
msoFileTypeNoteItems
msoFileTypeOutLookItems
msoFileTypePowerPoint
msoFileTypeTemplates
msoFileTypeWebPages
msoFileTypeBindere
msoFileTypeContactItems
msoFileTypeDataBases
msoFileTypeMailItems
msoFileTypeOfficeFile
msoFileTypeTarkItems
msoFileTypeVisioItems
msoFileTypeWordDocuments
- Властивість FoundFile повертає об'єкт FoundFiles, що представляє собою список імен всіх знайдених протягом пошуку файлів.
Метод Execute об'єкту Application виробляє безпосередній поск. Він повертає ціле число, причому, якщо воно дорівнює 0, то жодного файлу не було знайдено, а якщо позитивне, то знайдений, принаймні, один файл.
Лістинг 6. Пошук робочих книг в кореневому каталозі диска С
With Application. FileSearch
. LookIN = "C: \"
. FileType = msoFileTypeExcelWordBooks
If.Execute (SortByFileName._
Sortorder: msosoftorderabcending)> 0 Then
Dim str As string
Str = "Знайдено" &. FoundFile.Count & "
Dim I as integer
Int = I to FoundItem.Count
Str = str &. FoundFile (i) & vthcr
Next
MsgBox str
Else
MsgBox "Робочі книги не знайдені"
End if
End with
Симулювання комірок робочого аркуша
Метод Evaluate дозволяє симулювати роботу з осередками або діапазонами робочого аркуша без реального втілення цих дій на робочому аркуші.
Лістинг 7. Симулювання введення даних в комірки і зчитування з них значень
Public Sub Simur ()
Evaluate ("A1"). Value = 25
Evaluate ("A2"). Formula = "A1 ^ 2"
MsgBox Evaluate ("A2"). Value
End Sub
Лістинг 8 Симулювання осередків
Public Sub stimulirovanie ()
Dim firstCell As Range
Dim secondCell As Range
Set firstCell = Evaluate ("A1")
Set secondCell = Evaluate ("A2")
firstCell.Value = 25
secondCell.Formula = "A1 ^ 2"
MsgBox secondCell.Value
End Sub
Електронний годинник у клітинці робочого аркуша
Метод дозволяє створити електронний годинник. Для цього достатньо рекурсивно викликати процедуру, в якій прочитується поточний час. Потім воно виводиться у комірку робочого аркуша, знайдене час збільшується на секунду, і вже для обчисленого нового часу встановлюється рекурсивний виклик процедури.
Лістинг 9. Електронний годинник у клітинці робочого аркуша. Стандартний модуль
Sub DemoClock ()
DemoOnTime
End Sub
Sub DemoOnTime ()
Dim newHour, newMinute, newSecond, newTime
Cells (1, 1). Value = Now
newHour = Hour (Now)
newMinute = Minute (Now)
newSecond = Second (Now)
newTime = TimeSerial (newHour, newMinute, newSecond)
Application.OnTime EarliesTime: = newTime, Procedure: = "DemoOnTime"
End Sub
Доступ до окремих осередків діапазону
Властивість Cells об'єкта Range, використане без індексів, повертає всі комірки діапазону, а з індексів-конкретну комірку, специфіковані або її номером (один параметр), або місцем розташування (два параметри).
Наприклад, в наступному коді в діапазоні В1: С3 всі позитивні значення замінюються на 1, а негативні на -1.
Лістинг 10. Усі клітинки діапазону
Dim a as Range
For Each a in Range (В1: С3). Cells
If a.Value> 0 Then
a.Value = 1
Else if a.Value <0 then
a.Value =- 1
End if
Next
Лістинг 11
Dim i As Integer Dim j As Integer
For i = 1 To Range ("B1: C3"). Columns.Count For j = 1 To Range ("Bl: C3"). Columns.Count
If Range ("B1: C3")-Cells (i, j). Value> 0 Then
Range ("Bl: C3"). Cells (i, j). Value = 1 Elself Range ("B1: C3")-Cells (i, j). Value <0 Then
Range ("B1: C3"). Cells (i, j). Value = -1
End If
Next
Next
Якщо потрібно задати абсолютне місце розташування осередків, то треба скористатися властивістю Cells робочого аркуша, наприклад як в лістингу 12.
Лістинг 12. Абсолютна місце розташування осередків
Dim i As Integer Dim j As Integer For i = 2 To 3 For j = 1 To 3
If Cells (i, j). Value> 0 Then
Cells (i, j). Value = 1 Elself Cells (i, j). Value <0 Then
Cells (i, j). Value = -1
End If
Next
Nex
Пошук значення в діапазоні
Метод Find об'єкта Range здійснює пошук специфіковану інформації в зазначеному діапазоні і повертає посилання на першу клітинку, в якій знаходиться потрібна інформація знайдена. У разі не виявлення шуканих даних, метод повертає значення Nothing
Лістинг 13. Пошук значення
Public Sub Poiskznacheni ()
Dim rng As Range
Set rng = Range ("A1: A10"). Find (What: = 17, LookIn: = xlValues)
If Not (rng Is Nothing) Then
MsgBox rng.Address
Else
MsgBox "не знайдено значення"
End If
End Sub
Лістинг 14 Пошук підрядка без урахування регістру
Sub DemoFindNoMatchCase ()
Dim rng As Range
Set rng = Range ("A1: A10"). Find (What: = "BHV", LookIn: = xlValues, _
LookAt: = xlPart, MatchCase: = False)
If Not (rng Is Nothing) Then
MsgBox rng.Value
Else
MsgBox "не знайдено подходяшіе значення"
End If
End Sub
Повторний пошук та пошук всіх значень
Метод FindNext і FindPrevious об'єкта Range реалізує повторний виклик методу Find для продовження специфікованого пошуку. Перший з методів здійснює пошук наступної комірки, а другий - пошук попередньої, що задовольняє оголошеним критеріям пошуку.
FindNext (after)
FindPrevious (after)
Тут after-необов'язковий параметр, який вказує на клітинку після якої треба робити пошук.
Лістинг 15. Знаходження всіх входжень підрядка в даний діапазон
Sub DemoFind ()
Dim firstAddress As String
Dim rng As Range
Set rng = Range ("A1: A10"). Find (What: = "MS", LookIn: = xlValues, _
LookAt: = xlPart, MatchCase: = False)
If Not (rng Is Nothing) Then
firstAddress = rng.Address
Do
rng.Interior.Color = RGB (255, 255, 0)
Set rng = Range ("a1: a10"). FindNext (rng)
Loop While Not (rng Is Nothing) And rng.Address <> firstAddress
End If
End Sub
Перевести електронної пошти
Перевести електронної пошти з даними робочого аркуша може проводиться за допомогою засобів Microsoft Outlook.
Лістинг 16. Перевести електронної пошти
Private Sub cmdEMail_Click ()
Dim objOL As New Outlook.Application
Dim objMail As MailItem
Set objOL = New Outlook.Application
Set objMail = objOL.CreateItem (olMailItem)
With objMail
. To = Range ("B1"). Value
. Body = Range ("B2"). Value
. Subject = Range ("B3"). Value
. CC = Range ("B4"). Value
. Display
End With
Set objMail = Nothing
Set objOL = Nothing
End Sub
Умовне форматування
Умовне форматування дозволяє ефективно відображати, форматуючи осередку вибірково, грунтуючись на їх утриманні.
Лістинг 17. Умовне форматування
Private Sub optAverage_Click ()
Dim r As Range
Set r = Range ("B1: B6")
r.FormatConditions.Delete
r.FormatConditions.Add Type: = xlExdivssion, _
Formula1: = "= B1> = СРЗНАЧ ($ B $ 1: $ B $ 6)"
r.FormatConditions (1). Interior.Color = RGB (255, 255, 0)
End Sub
Private Sub optMax_Click ()
Dim r As Range
Set r = Range ("B1: B6")
r.FormatConditions.Delete
r.FormatConditions.Add Type: = xlCellValue, _
Operator: = xlEqual, _
Formula1: = "$ B $ 9"
With r.FormatConditions (1). Font
. Bold = True
. Italic = False
. Color = RGB (255, 0, 0)
End With
End Sub
Private Sub optValue_Click ()
Dim r As Range
Set r = Range ("B1: B6")
r.FormatConditions.Delete
r.FormatConditions.Add Type: = xlCellValue, _
Operator: = xlGreaterEqual, _
Formula1: = "$ G $ 8"
r.FormatConditions (1). Interior.Color = RGB (0, 0, 255)
End Sub
Управління стилем межі діапазону і об'єктами Border
Властивість Border об'єкта Range повертає сімейство Borders, елементи якого не інкапсулюють дані про одну з граничних або діагональних ліній даного діапазону. допустимими значеннями індексу сімейства Borders можуть бути наступні константи xlBordersIndex: lxDiagonalDown, xlEdgeLeft, xlEdgeRight, xlEdgeTop і т.д. Кожна з цих кордонів представляє об'єкт Border.
Лістинг 18. Управління стилем межі діапазону і об'єктами Border
Public Sub DemoBorders ()
'Будинку працює
Dim rgn As Range
Set rng = Range ("A2: C2")
With rng.Borders (xlEdgeTop)
. LineStyle = xlContinuouse
. Weight = xlThick
. Color = RGB (255, 0, 0)
End With
With rng.Borders (xlEdgeBottom)
. LineStyle = xlDash
. Weight = xlMedium
. Color = RGB (0, 255, 0)
End With
End Sub
Якщо компоненти кордону мають вони і ті ж параметри, то для установки їх значення можна скористатися не елементами, а всім сімейством Borders, як це, наприклад, робиться в такій інструкції для створення кордону синього кольору у виділеної області.
Приклад використання об'єкта Shape
Прикладом використання об'єкта Shape може бути наступний код (Лістинг 19) послідовно з інтервалом в одну секунду виводящіі різні автофігури, а потім з такою ж швидкістю їх видаляє.
Лістинг 19. Послідовний висновок автофігур
Public Sub StarShow ()
"Будинку працює
Dim w As Integer, h As Integer, i As Integer
Dim toppos As Integer, leftpos As Integer
Dim v As Long
Dim star As Shape
w = 50: h = 50
Randomize
For i = 1 To 10
toppos = Rnd () * (ActiveWindow.UsableHeight - h)
leftpos = Rnd () * (ActiveWindow.UsableWidth - w)
Select Case (i Mod 6)
Case 0
v = msoShape4pointStar
Case 1
v = msoShape5pointStar
Case 2
v = msoShape16pointStar
Case 3
v = msoShape32pointStar
Case 5
v = msoShapeDiamond
End Select
Set star = ActiveSheet.Shapes.AddShape (v, leftpos, toppos, w, h)
star.Fill.ForeColor.SchemeColor = Int (Rnd () * 56)
Application.Wait Now + TimeValue ("00:00:01")
DoEvents
Next
Application.Wait Now + TimeValue ("00:00:01")
For Each star In Worksheets (1). Shapes
If Left (star.Name, 9) = "AutoShape" Then
star.Delete
DoEvents
Application.Wait Now + TimeValue ("00:00:01")
End If
Next
End Sub
Підбір параметра і рішення рівняння з однією невідомою.
Метод GoalSeek об'єкта Range підбирає значення параметра (невідомої величини), що є рішенням рівняння з однією зміною. передбачається, що рівняння приведено до наступного вигляду: права частина рівняння є постійною, що не залежить від параметра, параметр входить тільки в ліву частину рівняння, наприклад,
x ^ 3-3 * x-5 = 0
Метод GoalSeek програмує виконання команди Сервіс | підбір параметра. Цей метод обчислює корінь, використовую метод послідовних наближень, результат виконання якого, залежить від початкового наближення.
Точність, з якою перебувати корінь і гранично допустиму кількість використовуваних для знаходження кореня, встановлюється властивість MaxChange і MaxIterations об'єкта Application. Напрімкр визначення кореня з точністю до 0,0001 максимум за 1000 ітерації встановлює інструкцією:
With Aplication
. MaxIterations = 1000
. MaxChange = 0.0001
End With
Метод GoalSeek повертає значення True, якщо рішення знайдено і значення False в іншому випадку. Наприклад наступний код (лістинг 20) шукає корінь рівняння x ^ 3-3 * x-5 при початковому наближенні 1
Лістинг 20. Рішення рівняння
Sub DemoGoalSeek ()
Range ("A1"). Name = "x"
Range ("A1"). Value = 1
Range ("B1"). Formula = "= x ^ 3-3 * x-5"
If Range ("B1"). GoalSeek (Goal: = 0, ChangingCell: = Range ("x")) Then
MsgBox "Корінь:" & Range ("A1"). Value
Else
MsgBox "корінь не знайдено"
End If
End Sub
1.3 Розробка і експлуатація автоматизованих ІС
1.3.1 Основні поняття технології проектування інформаційних систем (ІС)
Інформація в сучасному світі перетворилася в один з найбільш важливих ресурсів, а інформаційні системи (ІС) стали необхідним інструментом практично у всіх сферах діяльності.
Різноманітність завдань, що вирішуються за допомогою ІС, призвело до появи безлічі різнотипних систем, що відрізняються принципами побудови і закладеними в них правилами обробки інформації.
Класифікація ІС
Інформаційні системи можна класифікувати по цілому ряду різних ознак. У основу даної класифікації покладено найбільш істотні ознаки, що визначають функціональні можливості та особливості побудови сучасних систем. У залежності від обсягу вирішуваних завдань, використовуваних технічних засобів, організації функціонування, інформаційні системи діляться на ряд груп (класів) (рис. 1).
За типом даних, що зберігаються ІС діляться на фактографічні та документальні. Фактографічні системи призначені для зберігання і обробки структурованих даних у вигляді чисел і текстів. Над такими даними можна виконувати різні операції. У документальних системах інформація представлена ​​у вигляді документів, що складаються з найменувань, описів, рефератів і текстів. Пошук по неструктурованим даних здійснюється з використанням семантичних ознак. Відібрані документи надаються користувачеві, а обробка даних в таких системах практично не проводиться.
Грунтуючись на ступені автоматизації інформаційних процесів у системі управління фірмою, інформаційні системи діляться на ручні, автоматичні і автоматизовані.

Рис. 1. Класифікація інформаційних систем.
Ручні ІС характеризуються відсутністю сучасних технічних засобів переробки інформації і виконанням всіх операцій людиною.
У автоматичних ІС всі операції з переробки інформації виконуються без участі людини.
Автоматизовані ІС (АІС) передбачають участь в процесі обробки інформації і людини, і технічних засобів, причому головна роль у виконанні рутинних операцій обробки даних відводиться комп'ютера. Саме цей клас систем відповідає сучасному поданням поняття «інформаційна система».
Залежно від характеру обробки даних ІС діляться на інформаційно-пошукові та інформаційно-вирішальні.
Інформаційно-пошукові системи роблять введення, систематизацію, зберігання, видачу інформації по запиту користувача без складних перетворень даних. (Наприклад, ІС бібліотечного обслуговування, резервування і продажу квитків на транспорті, бронювання місць у готелях і пр.)
Інформаційно-вирішальні системи здійснюють, крім того, операції переробки інформації за певним алгоритмом. За характером використання вихідної інформації такі системи прийнято ділити на керуючі і радять.
Результуюча інформація керуючих ІС безпосередньо
трансформується в прийняті людиною рішення. Для цих систем характерні завдання розрахункового характеру і обробка великих обсягів даних. (Наприклад, ІС планування виробництва або замовлень, бухгалтерського обліку.)
Радять ІС виробляють інформацію, яка приймається людиною до відома і враховується при формуванні управлінських рішень, а не ініціює конкретні дії. Ці системи імітують інтелектуальні процеси обробки знань, а не даних. (Наприклад, експертні системи.)
У залежності від сфери застосування розрізняють такі класи ІС.
Інформаційні системи організаційного управління - призначені для автоматизації функцій управлінського персоналу, як промислових підприємств, так і непромислових об'єктів (готелів, банків, магазинів та ін.)
Основними функціями подібних систем є: оперативний контроль і регулювання, оперативний облік та аналіз, перспективне і оперативне планування, бухгалтерський облік, управління збутом, постачанням і інші економічні і організаційні завдання.
ІС управління технологічними процесами (ТП) - служать для автоматизації функцій виробничого персоналу з контролю та управління виробничими операціями. У таких системах зазвичай передбачається наявність розвинених засобів вимірювання параметрів технологічних процесів (температури, тиску, хімічного складу і т.д.), процедур контролю допустимості значень параметрів і регулювання технологічних процесів.
ІС автоматизованого проектування (САПР) - призначені для автоматизації функцій інженерів-проектувальників, конструкторів, архітекторів, дизайнерів під час створення нової техніки чи технології. Основними функціями подібних систем є: інженерні розрахунки, створення графічної документації (креслень, схем, планів), створення проектної документації, моделювання проектованих об'єктів.
Інтегровані (корпоративні) ІС - використовуються для автоматизації всіх функцій фірми і охоплюють весь цикл робіт від планування діяльності до збуту продукції. Вони включають в себе ряд модулів (підсистем), що працюють в єдиному інформаційному просторі і виконують функції підтримки відповідних напрямів діяльності. Типові завдання, які вирішуються модулями корпоративної системи, наведено в таблиці 3.
Таблиця 3. Функціональне призначення модулів корпоративної ІС

Існує класифікація ІС в залежності від рівня управління, на якому система використовується.
ІС оперативного рівня - підтримує виконавців, обробляючи дані про угоди і події (рахунки накладні, зарплата, кредити, потік сировини і матеріалів). Інформаційна система оперативного рівня є сполучною ланкою між фірмою і зовнішнім середовищем.
Завдання, цілі, джерела інформації та алгоритми обробки на оперативному рівні заздалегідь визначені і у високому ступені структуровані.
ІС фахівців - підтримують роботу з даними і знаннями, підвищують продуктивність і продуктивність роботи інженерів і проектувальників. Завдання подібних інформаційних систем - інтеграція нових відомостей в організацію та допомогу в обробці паперових документів.
ІС менеджменту - використовуються працівниками середньої управлінської ланки для моніторингу контролю, прийняття рішень і адміністрування. Основні функції цих інформаційних систем:
* Порівняння поточних показників з минулими;
* Складання періодичних звітів за певний час, а не видача звітів про поточні події, як на оперативному рівні;
* Забезпечення доступу до архівної інформації і т.д.
Стратегічна інформаційна система - комп'ютерна інформаційна система, що забезпечує підтримку прийняття рішень щодо реалізації стратегічних перспективних цілей розвитку організації.
ІС стратегічного рівня допомагають вищій ланці управлінців вирішувати неструктуровані завдання, здійснювати довгострокове планування. Основне завдання - порівняння відбуваються в зовнішньому оточенні змін до існуючого потенціалом фірми. Вони покликані створити загальну середу комп'ютерної телекомунікаційної підтримки рішень в несподівано виникаючих ситуаціях. Використовуючи найдосконаліші програми, ці системи здатні в будь-який момент надати інформацію з багатьох джерел. Деякі стратегічні системи володіють обмеженими аналітичними можливостями.
З точки зору програмно-апаратної реалізації можна виділити ряд типових архітектур ІС.
Традиційні архітектурні рішення грунтуються на використанні виділених файл-серверів або серверів баз даних. Існують також варіанти архітектур корпоративних ІС, що базуються на технології Internet (Internet - додатки). Наступний різновид архітектури ІС грунтується на концепції «сховища даних» (DataWarehouse) - інтегрованої інформаційної середовища, що включає різнорідні інформаційні ресурси. І, нарешті, для побудови глобальних розподілених інформаційних програм використовується архітектура інтеграції інформаційно-обчислювальних компонентів на основі об'єктно-орієнтованого підходу.
Індустрія розробки автоматизованих інформаційних систем управління зародилася в 1950-х т 1960-х роках і до кінця століття набула цілком закінчені форми.
На першому етапі основним підходом у проектуванні ІС був метод «знизу-догори», коли система створювалася як набір додатків, найбільш важливих у даний момент для підтримки діяльності підприємства. Основною метою цих проектів було не створення тиражованих продуктів, а обслуговування поточних потреб конкретної установи. Такий підхід частково зберігається і сьогодні. У рамках «клаптикової автоматизації» досить добре забезпечується підтримка окремих функцій, але практично повністю відсутня стратегія розвитку комплексної системи автоматизації, а об'єднання функціональних підсистем перетворюється на самостійну і достатньо складну проблему.
Створюючи свої відділи та управління автоматизації, підприємства намагалися «облаштуватися» своїми силами. Проте періодичні зміни технологій роботи та посадових інструкцій, складнощі, пов'язані з різними уявленнями користувачів про одних і тих же даних, приводили до безперервних доопрацюванням програмних продуктів для задоволення все нових і нових побажань окремих працівників. Як наслідок - і робота програмістів, і створювані ІС викликали невдоволення керівників і користувачів системи.
Наступний етап пов'язаний з усвідомленням того факту, що існує потреба в досить стандартних програмних засобах автоматизації діяльності різних установ і підприємств. З усього спектру проблем розробники виділили найбільш помітні: автоматизацію ведення бухгалтерського аналітичного обліку і технологічних процесів. Системи почали проектуватися «зверху-вниз», тобто у припущенні, що одна програма повинна задовольняти потреби багатьох користувачів.
Сама ідея використання універсальної програми накладає суттєві обмеження на можливості розробників з формування структури бази даних, екранних форм, за вибором алгоритмів розрахунку. Закладені «зверху» жорсткі рамки не дають можливості гнучко адаптувати систему до специфіки діяльності конкретного підприємства: врахувати необхідну глибину аналітичного і виробничо-технологічного обліку, включити необхідні процедури обробки даних, забезпечити інтерфейс кожного робочого місця з урахуванням функцій і технології роботи конкретного користувача. Вирішення цих завдань потребує серйозних доопрацювань системи. Таким чином, матеріальні і часові витрати на впровадження системи та її доведення під вимоги замовника зазвичай значно перевищують заплановані показники.
Згідно зі статистичними даними, зібраним Standish Group (США), з 8380 проектів, обстежених в США в 1994 році, невдалими виявилися більше 30% проектів, загальна вартість яких перевищувала 80 мільярдів доларів. При цьому виявилися виконаними у строк лише 16% від загального числа проектів, а перевитрата коштів склав 189% від запланованого бюджету.
У той же час, замовники ІС стали висувати все більше вимог спрямованих на забезпечення можливості комплексного використання корпоративних даних в управлінні та плануванні своєї діяльності.
Таким чином, виникла нагальна необхідність формування нової методології побудови ІС.

Життєвий цикл ІС
Методологія проектування ІС описує процес створення і супроводу систем у вигляді життєвого циклу (ЖЦ), ІС, представляє його як деяку послідовність стадій і виконуються на них процесів. Для кожного етапу визначаються склад і послідовність виконуваних робіт, отримані результати, методи і засоби, необхідні для виконання робіт, ролі та відповідальність учасників і т.д. Таке формальне опис ЖЦ ІС дозволяє спланувати та організувати процес колективної розробки і забезпечити управління цим процесом.
Етапи по спільності цілей можуть об'єднуватися в стадії. Сукупність стадії та етапів, які проходить ІС в своєму розвитку від моменту прийняття рішення про створення системи до моменту припинення її функціонування, називається життєвим циклом ІС.
Модель ЖЦ
Модель життєвого циклу відображає різні стани системи, починаючи з моменту виникнення необхідності, в даній ІС закінчуючи моментом її повного виходу з ужитку. Модель життєвого циклу - структура, що містить процеси, дії і завдання, які здійснюються в ході розробки, функціонування та супроводу програмного продукту протягом всього життя системи, від визначення вимог до завершення її використання.
В даний час відомі і використовуються наступні моделі життєвого циклу:
* Каскадна модель (рис. 2.1) передбачає послідовне виконання всіх етапів проекту в чітко фіксованому порядку. Перехід на наступний етап означає повне завершення робіт на попередньому етапі.
* Поетапна модель з проміжним контролем (рис. 2.2). Розробка ІС ведеться итерациями з циклами зворотного зв'язку між етапами. Міжетапні коригування дозволяють враховувати реально існуюче взаємовплив результатів розробки на різних етапах; час життя кожного з етапів розтягується на весь період розробки (інша назва - итерационная модель).
* Спіральна модель (рис. 2.3). На кожному витку спіралі виконується створення чергової версії продукту, уточнюються вимоги проекту, визначається його якість і плануються роботи наступного витка.

Рис. 2.1 Каскадна модель ЖЦ ІС

Рис. 2.2. Поетапна модель з проміжним контролем

Рис. 2.3. Спіральна модель ЖЦ ІС
На практиці найбільше поширення отримали дві основні моделі життєвого циклу:
* Каскадна модель (характерна для періоду 1970-1985 рр..);
* Спіральна модель (характерна для періоду після 1986 р.).
У ранніх проектах досить простих ІС кожен додаток являло собою єдиний, функціонально та інформаційно незалежний блок. Для розробки такого типу додатків ефективним виявився каскадний спосіб. Кожен етап завершувався після повного виконання та документального оформлення всіх передбачених робіт.
Можна виділити наступні позитивні сторони застосування каскадного підходу:
* На кожному етапі формується закінчений набір проектної документації, який відповідає критеріям повноти та узгодженості;
* Виконуються в логічній послідовності етапи робіт дозволяють планувати терміни завершення всіх робіт і відповідні витрати.
Каскадний підхід добре зарекомендував себе при побудові відносно простих ІС, коли на самому початку розробки можна досить точно і повно сформулювати всі вимоги до системи. Основним недоліком цього підходу є те, що реальний процес створення системи ніколи повністю не вкладається в таку жорстку схему, постійно виникає потреба в поверненні до попередніх етапах і уточнення або перегляд раніше прийнятих рішень. У результаті реальний процес створення ІС виявляється відповідним поетапної моделі проміжним контролем.
Однак і ця схема не дозволяє оперативно враховувати виникаючі зміни і уточнення вимог до системи. Узгодження результатів розробки з користувачами проводиться тільки в точках, що плануються після завершення кожного етапу робіт, а загальні вимоги до ІС зафіксовані у вигляді технічного завдання на весь час її створення. Таким чином, користувачі часто отримують систему, не задовольняє їх реальним потребам.
Іншими словами каскадна модель передбачає розробку закінчених продуктів на кожному етапі: технічного завдання, технічного проекту, програмного продукту і для користувача документації. Розроблена документація дозволяє не тільки визначити вимоги до продукту наступного етапу, а й визначити обов'язки сторін, обсяг робіт і терміни, при цьому остаточна оцінка термінів і вартості проекту проводиться на початкових етапах, після завершення обстеження. Очевидно, що у великих системах, як правило, вимоги змінюються в ході реалізації проекту, а якість документів виявляється невисоким (вимоги неповні і / або суперечливі), то насправді використання каскадної моделі створює лише ілюзію визначеності і на ділі збільшує ризики, зменшуючи лише відповідальність учасників проекту. При формальному підході менеджер проекту реалізує тільки ті вимоги, які містяться в специфікації, спирається на документ, а не на реальні потреби бізнесу.
Ітераційна модель. Створення комплексних ІС припускає проведення ув'язки проектних рішень, одержуваних при реалізації окремих завдань. Підхід до проектування знизу-вверх обумовлює необхідність таких ітераційних повернень, коли проектні рішення з окремих завдань комплектуються в загальні системні рішення, і при цьому виникає потреба у перегляді раніше сформульованих вимог. Як правило, внаслідок великої кількості ітерацій виникають неузгодженості у виконаних проектних рішеннях і документації. Залякування функціональної та системної архітектури створеної ІС, труднощі у використанні проектної документації викликають на стадіях впровадження і експлуатації відразу необхідність перепроектування всієї системи. Тривалий життєвий цикл розробки ІС закінчується етапом впровадження, за яким починається життєвий цикл новій ІС.
Спіральна модель ЖЦ була запропонована для подолання перелічених проблем. На етапах аналізу і проектування реалізація технічних рішень і ступінь задоволення потреб замовника перевіряється шляхом створення прототипів. Кожен виток спіралі відповідає створенню працездатного фрагмента або версії системи. Це дозволяє уточнити вимоги, цілі і характеристики проекту, визначити якість розробки, спланувати роботи наступного витка спіралі. Таким чином, поглиблюються і послідовно конкретизуються деталі проекту і в результаті вибирається обгрунтований варіант, який задовольняє дійсним вимогам замовника та доводиться до реалізації.
У спіральної моделі ЖЦ використовується підхід до організації проектування ІС зверху-вниз, коли спочатку визначається склад функціональних підсистем, а потім постановка окремих завдань. Відповідно спочатку розробляються такі загальносистемні питання, як організація інтегрованої бази даних, технологія збору, передачі та накопичення інформації, а потім технологія вирішення конкретних завдань. У рамках комплексів завдань програмування здійснюється за направленням від головних програмних модулів до виконуючим окремі функції. При цьому на перший план виходять питання взаємодії інтерфейсів програмних модулів між собою і з базою даних, а на другий - реалізація алгоритмів.
В основі спіральної моделі життєвого циклу лежить застосування прототипну технології або RAD-технології (Rapid Application Development - технології швидкої розробки додатків). Відповідно до цієї технології ІС розробляється шляхом розширення програмних прототипів, повторюючи шлях від деталізації вимог до деталізації програмного коду. Природно, що при прототипну технології скорочується число ітерацій і виникає менше помилок і невідповідностей, які необхідно виправляти на наступних ітераціях, при цьому проектування ІС здійснюється більш швидкими темпами, спрощується створення проектної документації. Для більш точної відповідності проектної документації розробленої ІВ все більшого значення надається веденню загальносистемного репозитарію (сховища) та використання CASE - технологій.
Життєвий цикл при використанні RAD-технології передбачає активну участь кінцевих користувачів майбутньої системи на всіх етапах розробки і включає чотири основні стадії інформаційного інжинірингу:
• аналіз і планування інформаційної стратегії. Користувачі разом з фахівцями-розробниками беруть участь в ідентифікації проблемної області;
• проектування. Користувачі беруть участь у технічному проектуванні під керівництвом фахівців-розробників;
• конструювання. Фахівці-розробники проектують робочу версію ІС з використанням мов четвертого покоління;
• впровадження. Фахівці-розробники навчають користувачів роботі в середовищі нової ІС.
Основна проблема спірального циклу - визначення моменту переходу на наступний етап. Для її рішення вводяться тимчасові обмеження на кожен з етапів життєвого циклу, і перехід здійснюється відповідно до плану, навіть якщо не вся запланована робота закінчена. Планування виробляється на основі статистичних даних, отриманих у попередніх проектах, та особистого досвіду розробників.
Спіральна модель частіше змінюється при розробці ІС силами власного відділу ІТ підприємства.
Стандарти ЖЦ ІС
Проектування ІС - трудомісткий, тривалий і динамічний процес, що проходить через безліч етапів. Останні можуть об'єднуватися в стадії. Кожна з стадій створення системи передбачає виконання певного обсягу робіт, які надаються у вигляді процесів ЖЦ. Процес визначається як сукупність взаємопов'язаних дій, що перетворюють вхідні дані у вихідні. Опис кожного процесу включає в себе перелік вирішуваних завдань, вихідних даних і результатів.
Існує цілий ряд стандартів, що регламентують ЖЦ ПЗ, а в деяких випадках і процеси розробки.
Значний внесок у теорію проектування і розробки інформаційних систем внесла компанія IBM, запропонувавши ще в середині 1970-х років методологію BSP (Business System Planning - методологія організаційного планування). Метод структурування інформації з використанням матриць перетину бізнес-процесів, функціональних підрозділів, функцій систем обробки даних (інформаційних систем), інформаційних об'єктів, документів і баз даних, запропонований у BSP, використовується сьогодні не тільки в ІТ-проектах, а й проектах з реінжинірингу бізнес -процесів, зміни організаційної структури. Найважливіші кроки процесу BSP, їх послідовність (отримати підтримку вищого керівництва, визначити процеси підприємства, визначити класи даних, провести інтерв'ю, обробити і організувати дані інтерв'ю) можна зустріти практично у всіх формальних методиках, а також у проектах, що реалізуються на практиці.
Серед найбільш відомих стандартів можна виділити наступні:
• ГОСТ 34.601-90 - поширюється на автоматизовані системи і встановлює стадії та етапи їх створення. Крім того, в стандарті міститься опис змісту робіт на кожному етапі. Стадії й етапи роботи, закріплені в стандарті, більшою мірою відповідають каскадної моделі життєвого никла.
• ISO / IEC 12207:1995 - стандарт на процеси й організацію життєвого циклу. Поширюються на всі види замовленого ПЗ. Стандарт не містить опису фаз, стадій етапів.
• Custom Development Method (методика Оrас1е) з розробки прикладних інформаційних систем - технологічний матеріал, деталізований до рівня заготовок проектних документів, розрахованих на використання в проектах із застосуванням Оrас1е. Застосовується СDМ для класичної моделі ЖЦ (передбачені всі роботи / завдання та етапи), а також для технологій «швидкої розробки» (Fast Track) або «полегшеного підходу», рекомендованих у випадку малих проектів.
• Rational Unified Process (RUP) пропонує ітеративну модель розробки, що включає чотири фази: початок, дослідження, побудова та впровадження. Кожна фаза може бути розбита на етапи (ітерації), в результаті яких випускається версія для внутрішнього або зовнішнього використання. Проходження через чотири основні фази називається циклом розробки, кожен цикл завершується генерацією версії системи. Якщо після цього робота над проектом не припиняється, то отриманий продукт продовжує розвиватися і знову мине ті ж фази. Суть роботи в рамках RUP - це створення і супровід моделей на базі UML.
• Microsoft Solution Framework (MSF) подібна з RUP так само включає чотири фази: аналіз, проектування, розробка, стабілізація, є ітераційної, припускає використання об'єктно-орієнтованого моделювання. MSF у порівнянні з RUP більшою мірою орієнтована на розробку бізнес-додатків.
• Extreme Programming (XP). Екстремальне програмування (сама нова серед розглянутих методологій) сформувалося в 1996 році. В основі методології командна робота, ефективна комунікація між замовником і виконавцем протягом усього проекту з розробки ІС, а розробка ведеться з використанням послідовно допрацьовуємо прототипів.
Пізніше був розроблений і в 2002 р. опублікований стандарт на процеси життєвого циклу систем (ISO / IEC 15288 System life cycle processes). До розробки стандарту були залучені фахівці різних областей: системної інженерії, програмування, управління якістю. Людськими ресурсами, безпекою та ін Був врахований практичний досвід створення систем в урядових, комерційних, військових і академічних організаціях. Стандарт застосовується для широкого класу систем, але його основне призначення - підтримка створення комп'ютеризованих систем.
Відповідно до стандарту ISO / IEC серії 15288 до структури ЖЦ слід включати наступні групи процесів:
1. Договірні процеси:
* Придбання (внутрішні рішення або рішення зовнішнього постачальника);
* Поставка (внутрішні рішення або рішення зовнішнього постачальника).
2. Процеси підприємства:
* Управління навколишнім середовищем підприємства;
* Інвестиційне управління;
* Управління ЖЦ ІС;
* Управління ресурсами;
* Управління якістю.
3. Проектні процеси:
* Планування проекту;
* Оцінка проекту;
* Контроль проекту;
* Управління ризиками;
* Управління конфігурацією;
* Управління інформаційними потоками;
* Прийняття рішень.
4. Технічні процеси:
* Визначення вимог;
* Аналіз вимог;
* Розробка архітектури;
* Впровадження;
* Інтеграція;
* Верифікація;
* Перехід;
* Атестації;
* Експлуатації;
* Супровід;
* Утилізація.
5. Спеціальні процеси:
* Визначення та встановлення взаємозв'язків виходячи із завдань і цілей.
Стадії створення системи, передбачені в стандарті ISO / IEC 15288, дещо відрізняється від аналогічних в інших стандартах. Перелік стадій і основні результати, які повинні бути досягнуті до моменту їх завершення, наведені в таблиці 4.

Таблиця 4. Стадії створення систем (ISO / IEC 15288)

1.3.2 Основи сучасної технології проектування АІС
Класифікація методів проектування систем
Методи проектування ІС можна класифікувати за ступенем використання засобів автоматизації, типових проектних рішень, адаптивності до передбачуваних змін.
Так, за ступенем автоматизації методи проектування поділяються на:
* Ручне, при якому проектування компонентів ІС здійснюється без використання спеціальних інструментальних програмних засобів, а програмування - на алгоритмічних мовах;
* Комп'ютерне, при якому виробляється генерація або конфігурація (настройка) проектних рішень на основі використання спеціальних інструментальних програмних засобів.
За ступенем використання типових проектних рішень розрізняють такі методи проектування:
* Оригінальне (індивідуальне), коли проектні рішення розробляються «з нуля» відповідно до вимог до АІС. Характеризується тим, що всі види проектних робіт орієнтовані на створення індивідуальних для кожного об'єкта проектів, які максимальною мірою відображають всі його особливості;
* Типове, що припускає конфігурування ІС з готових типових проектних рішенні (програмних модулів). Виконується на основі досвіду, отриманого при розробці індивідуальних проектів. Типові проекти, як узагальнення досвіду для деяких груп організаційно-економічних систем або видів робіт, у кожному конкретному випадку пов'язані з безліччю специфічних особливостей і розрізняються за ступенем охоплення функцій управління, виконуваних робіт і розробляється проектної документації.
За ступенем адаптивності проектних рішень виділяють методи;
* Реконструкції, коли адаптація проектних рішень виконується шляхом переробки відповідних компонентів (перепрограмування програмних модулів);
* Параметризації, коли проектні рішення настроюються (генеруються) відповідно до змінюваними параметрами;
* Реструктуризації моделі, коли змінюється модель проблемної області, на основі якої автоматично заново генеруються проектні рішення.
Поєднання різних ознак класифікації методів обумовлює характер використовуваних технологій проектування ІС, серед яких виділяють два основні класи: канонічну та індустріальну технології (табл. 5.). Індустріальна технологія проектування, у свою чергу, розбивається на два підкласи: автоматизоване (використання CASE-технологій) і типове (параметрично-орієнтоване або модельно-орієнтований) проектування. Використання індустріальних технологій не виключає використання в окремих випадках канонічних.
Для конкретних видів технологій проектування властиво застосування певних засобів розробки ІС, які підтримують виконання, як окремих проектних робіт, етапів, так і їх сукупностей. Тому перед розробниками ІС, як правило, стоїть завдання вибору засобів проектування, які за своїми характеристиками найбільше відповідають вимогам конкретного підприємства.
Таблиця 5. Характеристики класів технологій проектування

Засоби проектування ІС можна розділити на два класи:
Без використання ЕОМ та з використанням ЕОМ.
Засоби проектування без використання ЕОМ застосовуються на всіх стадіях і етапах. Як правило, це кошти організаційно-методичного забезпечення операцій і в першу чергу різні стандарти, що регламентують процес проектування систем. Сюди ж відносяться єдина система класифікації та кодування інформації, уніфікована система документації, моделі опису і аналізу потоків інформації і т. п.
Засоби проектування з використанням ЕОМ можуть застосовуватися як на окремих, так і на всіх стадіях і етапах процесу проектування ІС і відповідно підтримують розробку елементів, розділів, проекту системи в цілому. Всі безліч засобів проектування з використанням ЕОМ ділять на чотири підкласу.
1. Операційні засоби, які підтримують проектування операцій обробки інформації. Цей підклас засобів відносяться алгоритмічні мови, бібліотеки стандартних підпрограм і класів об'єктів, макрогенератори, генератори програм типових операцій обробки даних і т. п., а також засоби розширення функцій операційних систем (утиліти). У даний клас включаються також такі найпростіші інструментальні засоби проектування, як засобу для тестування і налагодження програм, підтримки процесу документування проекту і т. п. Особливість останніх програм полягає в тому, що з їх допомогою підвищується продуктивність праці проектувальників, але не розробляється закінчене проектне рішення .
Таким чином, кошти цього підкласу підтримують ділові операції проектування ІС та можуть застосовуватися незалежно один від одного.
2. Засоби, що підтримують проектування окремих компонентів. Цей підклас відносяться засоби загальносистемного призначення:
* Системи управління базами даних (СКБД);
* Методо-орієнтовані пакети прикладних програм (рішення задач дискретного програмування, математичної статистики і т. П.);
* Табличні процесори;
* Статистичні ППП та ін
Для перерахованих коштів характерно їх використання для розробки технологічних підсистем ІС: введення інформації, організації зберігання і доступу до даних, обчисленні, аналізу і відображення даних, прийняття рішень.
3. Засоби, що підтримують проектування розділів проекту. У цьому підкласі виділяють функціональні засоби проектування.
Функціональні засоби спрямовані на розробку автоматизованих систем, що реалізують функції, комплекси задач і завдання управління. Різноманітність предметних областей породжує різноманіття засобів даного півкласу, орієнтованих тип організаційної системи (промислова, непромислова сфери), рівень управління (наприклад, підприємство, цех, відділ, ділянка, робоче місце), функцію управлінні (планування, облік і т. п.).
До функціональних засобів проектування систем обробки інформації належать типові проектні рішення, функціональні пакети прикладних програм, типові проекти.
4. Засоби, що підтримують розробку на стадіях і етапах процесу проектування. До даного класу відносяться засоби автоматизації проектування ІС (CASE-засоби). Сучасні CASE-засоби у свою чергу, класифікуються в основному за двома ознаками:
1) за визначеним етапах процесу розробки ІС;
2) за ступенем інтегрованості:
* Окремі локальні засоби (tools);
* Набір неінтегрованих засобів, що охоплюють більшість етапів розробки ІС (toolkit);
* Повністю інтегровані засоби, пов'язані спільною базою проектних даних - репозиторієм (workbench).
Формалізація технології проектування ІС
Складність, високі витрати і трудомісткість процесу проектування ІС протягом всього життєвого циклу викликають необхідність, з одного боку, вибору адекватної економічному об'єкту технології проектування, з іншого - наявність ефективного інструменту управління процесом її застосування. З цієї точки зору виникає потреба в побудові такої формалізованої моделі технології проектування, на основі якої можна було б оцінити необхідність і можливість застосування певної технології проектування з урахуванням сформульованих вимог до ІС та виділених на економічному об'єкті ресурсів, а в подальшому контролювати хід і результати проектування.
Найбільшою мірою завданню формалізації технології проектування ІС відповідає апарат технологічних мереж проектування.
Технологічна мережа проектування (ТСП) будується на основі окремих технологічних операції. Під ТСП розуміється взаємозалежна з входів і виходів послідовність технологічних операцій проектування, виконання яких призводить досягненню необхідного результату - створення проекту ІС.
Технологічні мережі проектування можуть будуватися з різним ступенем деталізації. Найбільш деталізована ТСП, в якій кожна технологічна операція є ручний, називається канонічною. Канонічна ТСП найбільш придатна для проектувальників-виконавців, так як є посібником із проектування ІС. Замість з тим канонічна ТСП всього проекту рідко використовується в повному обсязі, швидше за різні категорії проектувальників-виконавців користуються відносяться до їх компетенції фрагментами канонічної мережі.
Для укрупнення ТСП застосовуються технологічні операції-агрегати, яким відповідають фрагменти канонічної ТСП. Наприклад, ТО «Проектування схеми бази даних» декомпозіруется на ряд взаємозалежних ТО: «Нормалізація таблиць», «Встановлення зв'язків», «Відображення в схемі DDL СУБД» і т.д.
При використанні засоби автоматизованого проектування проектувальник-виконавець може користуватися технологічними операціями-агрегатами, об'єднуючими фрагменти канонічної ТСП. Для таких ТО обов'язково задається посилання на використовуваний засіб проектування. Причому якщо засіб проектування є комплексним, то вказуються конкретний компонент (функція, модуль, опція і т, д.) або компоненти цього кошти.
Технологічні мережі проектування можуть мати варіантний характер побудови. Наприклад, ТСП проектування вихідних форм звітів залежить від засобу проектування, вибір якого у свою чергу, визначається їх складністю. Для правильного вибору засобу проектування вводиться спеціальна технологічна операція, яка зіставляє параметри вимог (наприклад, підсумки звітів, число таблиць форми, кількість файлів бази даних тощо) з аналогічними параметрами засоби проектування. Залежно від обраного засоби проектування далі визначається конкретна гілка ТСП. Наприклад, якщо в сукупності засобів проектування є тільки генератор звітів, що працює з одним файлом, то в технологічну мережу потрібно ввести операцію проектування вихідного файлу. Якщо жоден із засобів не підходить, то проектування здійснюється відповідно до канонічної мережею проектування.
Канонічне проектування ІС
Канонічне проектування ІС відображає особливості ручної технології індивідуального (оригінального) проектування, здійснюваного на рівні виконавців без використання будь-яких інструментальних засобів, що дозволяють інтегрувати виконання елементарних операцій. Як правило, канонічне проектування застосовується для невеликих локальних ІС.
Організація канонічного проектування ІС орієнтована на використання головним чином каскадної моделі життєвого никла ІС. Стадії та етапи роботи описані в стандарті ГОСТ 34.601-90.
У залежності від складності об'єкта автоматизації і набору завдань, що потребують вирішення при створенні конкретної ІС, стадії та етапи робіт можуть мати різну трудомісткість. Допускається об'єднувати послідовні етапи і навіть виключати деякі з них на будь-якій стадії проекту. Допускається також починати виконання робіт наступній стадії до закінчення попередньої.
Стадії та етапи створення ІС, що виконуються організаціями-учасниками, прописуються в договорах і технічних завданнях на виконання робіт:
1) дослідження та обгрунтування створення системи;
2) розробка технічного завдання;
3) створення ескізного проекту;
4) технічне проектування;
5) робоче проектування;
6) введення в дію;
7) функціонування, супровід, модернізація.
З метою вивчення взаємопов'язаних прийомів і методів канонічного проектування ІС перераховані сім стадій можна згрупувати в часто використовувані на практиці чотири стадії процесу розробки ІС (табл. 6.)
Таблиця 6. Зміст і результати основних стадій канонічного проектування АІС

Склад і зміст робіт на передпроектній стадії створення ІС.
При дослідженні існуючого економічного об'єкта (системи) розробники повинні уточнити межі вивчення, визначити коло користувачів майбутньої ІС різних рівнів і виділити класи і типи об'єктів, що підлягають подальшій автоматизації.
Найважливішими об'єктами обстеження можуть валятися:
• структурно-організаційні ланки підприємства (наприклад, відділи управління, цехи, дільниці, робочі місця);
• функціональна структура, склад господарських процесів і процедур;
• стадії (технічна підготовка, постачання, виробництво, збут) і елементи господарського процесу (засоби праці, предмети праці, ресурси, продукція, фінанси).
При канонічному проектуванні основною одиницею обробки даних є задача. Тому функціональна структура проблемної області на стадії передпроектного обстеження вивчається в розрізі вирішуваних завдань і комплексів завдань. При цьому завдання в змістовному аспекті розглядається як сукупність операцій перетворення деякого набору вихідних даних для отримання результатної інформації, необхідної для виконання функції управління або прийняття управлінського рішення. У більшості випадків вихідні дані та результати їх перетворень подаються у формі економічних документів. Тому до числа об'єктів обстеження відносяться компоненти потоків інформації (документи, показники, файли, повідомлення). Крім того, об'єктами обстеження служать:
• технології, методи і технічні засоби перетворення інформації;
• матеріальні потоки і процеси їх обробки.
Основною метою виконання першого етапу передпроектного обстеження «Збір матеріалів» є:
• виявлення основних параметрів предметної області (наприклад, підприємства чи його частини);
• встановлення умов, в яких буде функціонувати проект ІС;
• виявлення вартісних і тимчасових обмежень на процес
проектування.
На цьому етапі проектувальниками виконується ряд технологічних операцій і вирішуються такі завдання: попереднє вивчення предметної області; вибір технології проектування; вибір методу проведення обстеження; вибір методу збору матеріалів обстеження; розробка програми обстеження; розробка плану-графіка збору матеріалів обстеження, збір і формалізація матеріалів обстеження .
В операції, пов'язаної з комплексом технічних засобів, на вибір ЕОМ впливає велика кількість чинників, які прийнято об'єднувати в такі групи:
1. Фактори, пов'язані з параметрами вхідних інформаційних потоків, що надходять на обробку ЕОМ: обсяг інформації, тип носія інформації, характер представлення інформації.
2. Фактори, що залежать від характеру завдань, які повинні вирішуватися на ЕОМ, і їх алгоритмів: терміновість рішення, можливість поділу завдання на підзадачі, що їх на інший ЕОМ, кількість файлів з умовно-постійною інформацією.
3. Фактори, які визначаються технічними характеристиками ЕОМ: продуктивність процесора, ємність оперативної пам'яті, підтримувана операційна система, можливість підключення різних пристроїв введення-виведення.
4. Фактори, що відносяться до експлуатаційних характеристик ЕОМ: необхідні умови експлуатації.
5. Фактори, що враховують вартісні оцінки витрат на придбання, на утримання обслуговуючого персоналу, на проведення ремонтних робіт.
Далі слід виконати операції «Вибір типу операційних систем». Операційні системи здійснюють управління роботою ЕОМ, її ресурсами, запускають на виконання різні прикладні програми, виконують усілякі допоміжні дії по запиту користувача.
До факторів, що визначає вибір конкретного класу ОС і його версією, відносяться:
* Необхідне безліч підтримуваних програмних продуктів;
* Вимоги до апаратних засобів;
* Можливість використання різних пристроїв введення-виведення;
* Вимога підтримки мережевої технології;
* Наявність довідкової служби для користувача;
* Наявність дружнього інтерфейсу і простота використання та ін
Наступною операцією є операція «Вибір способу організації інформаційної бази (ІБ) і програмного засобу ведення ІБ. Інформаційна база має кілька способів організації як сукупність локальних файлів і інтегровану організацію у вигляді баз даних.
Локальна (файлова) організація має на увазі під собою зберігання даних у вигляді сукупності не залежних між собою локальних файлів, що створюються для документа, завдання або комплексу завдань.
Інтегрована база даних являє собою сукупність взаємопов'язаних, що зберігаються разом, використовуваних для одного або декількох застосувань. Дані, організовані у вигляді БД, можуть бути організовані як централізовано (розміщені на одній ЕОМ), так і у вигляді розподілених БД (розміщених на декількох ЕОМ).
Програмні засоби веління ІБ вибираються, виходячи з класу систем зберігання даних: системи управління файлами якої системи управління базами даних (СКБД). До основних факторів, що визначає вибір типу СУБД, належать такі:
• масштаб застосування СУБД. За цією ознакою виділяють персональні - настільні СУБД (наприклад, FохРго або Access) або промислові - мережеві СУБД (наприклад, Oracle);
• мова спілкування. Розділяють СУБД з відкритими мовами, замкнутими або змішаними;
• число рівнів в архітектурі. Існують однорівневі: дворівневі, трирівневі СУБД;
Додати в блог або на сайт

Цей текст може містити помилки.

Програмування, комп'ютери, інформатика і кібернетика | Курсова | 416кб. | скачати

Схожі роботи:
Access і Visual basic for Application Excel VBA прийоми програмування
Основи Visual Basic 50
Потоки в Visual Basic
Програмування на Visual Basic
Завдання з програмування на Visual Basic
Створення тесту на Visual Basic
Робота в середовищі Visual Basic
Квитки з інформатики 10 клас Visual Basic
Адресна книга на мові Visual Basic
© Усі права захищені
написати до нас
Рейтинг@Mail.ru