КАТЕГОРИИ:
АстрономияБиологияГеографияДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРиторикаСоциологияСпортСтроительствоТехнологияФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника
|
Призначення та основні поняття системи об‘єктно-орієнтованого програмування VBA: редактор, процедури та функції, основні конструкції та оператори мови
Об'єктно-орієнтоване програмування.Об'єктно-орієнтоване програмування це найбільш сучасний стиль в розробці комп'ютерних програм. Цей стиль використовується тому, що сучасне конструювання програм намагається добитися певної специфічної мети. Комп'ютерні програми повинні бути: • що модернізуються • що повторно використовуються • переносимими. Програми повинні бути такими, що перевіряються, щоб ви могли пересвідчитися, що вони роблять саме те, що повинні робити. Програми повинні бути такими, що модернізуються, щоб ви або будь-хто інший могли зрозуміти програму досить добре, щоб внести коректні зміни. Програми повинні бути повторно такими, що використовуються, щоб ви, лише одного разу написавши процедуру, потім могли повторно використати її при будь-якій необхідності. І, нарешті, програми повинні бути переносимими, щоб перенести їх на різні платформи з мінімальними переробками. Сучасна практика програмування шукає досягнення цих цілей в модульності комп'ютерних програм. Модульні комп'ютерні програми при розробці розбиваються на окремі частини, що іменуються модулями. Кожний модуль виконує специфічні, суворо певні функції перетворення і має доступ тільки до тих даних, які необхідні для даного перетворення. Код модуля, розроблений зі суворо певним інтерфейсом для інших модулів програми, дуже легкий для відладки, супроводу і розуміння. Іншим аспектом модульності є його замкненість, що додає упевненість в тому, що будь-які зміни, які ви вносите в код модуля, вплинуть тільки на функції цього модуля і ні на що інше. Таким чином, ці особливості полегшують відладку, супровід і розуміння коду. Об'єктно-орієнтоване програмування (ООП) максимально використовує принцип модульності. Програмний об'єкт в ООП називається "контейнером". Контейнер включає в себе дані і код, який знає, як маніпулювати цими даними. Іншими словами, програмний об'єкт це просто блок, що складається з коду і даних. Він може бути представлений як реальний фізичний об'єкт, наприклад у вигляді командної кнопки. Програмний об'єкт володіє специфічною функцією перетворення і містить весь необхідний код і всі необхідні дані для реалізації цієї функції, але його внутрішня робота прихована від стороннього ока. У більш традиційному програмуванні комп'ютерна програма розроблялася у вигляді функціональних наборів рядків, в яких блоки даних передавалися від модуля до модуля і кожний модуль модифікував або використав ці дані своїм способом. Модулі не містили даних, а тільки коди для модифікації будь-яких переданих даних. Якщо програма випадково передасть такій процедурі невірні дані, процедура все одно обробить їх, повернувши вам "сміття", або взагалі викличе аварію вашої системи. У об'єктно-орієнтованому програмуванні дані і код, який маніпулює цими даними, об'єднані в структурі, званій об'єкт. Замість того, щоб передавати дані від модуля до модуля для виконання різних обчислень, ви посилаєте повідомлення об'єкту, що містить ці дані, і таким чином доручаєте йому виробити обчислення. Передати об'єкту погані дані неможливо, бо дані, з якими об'єкт маніпулює, включені в цей об'єкт. Більш того не можна викликати або виконати об'єкт можна тільки послати йому повідомлення з ввічливим проханням виконати одну із задач, що вирішуються ним (звичайно, якщо об'єкт не знайде можливості здійснити необхідну маніпуляцію, то, швидше усього, йому доведеться ввічливо повідомити вам, що він не може задовольнити ваш запит). Основні поняття Visual Basic for Application.Мова програмування VBA виникла на основі мови Visual Basic(VB). VBA тісно пов’язаний з мовою VB. В VB і VBA використовуються ідентичні середовища розробки. Основна відмінність мови програмування VB і мови Visual Basic for Application в тому, що на мові Visual Basic створюються самостійні додатки, а проекти VBA працюють в середовищі Microsoft Office. Крім того слідує відмітити що, програма VBA не компілюється на відміну від VB, а інтерпретується. Це означає, що переведення програми в машинний код здійснюється в процесі її виконання і проекти VBA виконуються тільки з допомогою додатка, який підтримує VBA. При компіляції переведення програми в машинний код відбувається до запуску програми, тому скомпільовані додатки працюють швидше і займають менше пам’яті. Проте, по-перше, вони мають меншу гнучкість і, по-друге, на сьогоднішній день, комп’ютерна техніка настільки прогресивна, що швидкодія і об’єм пам’яті не є критичним моментом для офісних додатків (помітити різницю в швидкодії програм написаних на VB і VBA практично неможливо). Якщо ж говорити в загальному, то Visual Basic for Application — це інструмент розробки додатків. VBA — не просто стандартна макромова додатків Microsoft Office: цей інструмент застосовується для розширення функціональних можливостей додатків, у яких він використовується. Наприклад, можна додати власне меню або функцію до вбудованих засобів Excel, або створити свого майстра, щоб спростити створення презентацій в PowerPoint. Спільно використовуючи VBA з програмами Microsoft Office, можна вирішувати дуже складні задачі. Наприклад за допомогою VBA можна: 1. Створити макроси, які дозволяють автоматизувати роботу та розширюють функціональні можливості додатка, у який вбудований VBA. Структура проектів VBA.При рішенні задач за допомогою VBA потрібно створити проект. Проект включає кілька елементів. Розглянемо коротко кожний з цих елементів. Розробка проектів і створення додатків. Проекти VBA виконуються разом з іншими додатками. Додаток, у якому розробляється і виконується проект VBA, називається основним. Наприклад, можна створити проект VBA, що працює разом з Microsoft Excel. У цьому випадку Excel є основним додатком. Фактично, не використовуючи основний додаток, не можна побудувати додаток VBA. Середовище розробки VBA. VBA має власне середовище розробки, що називається інтегрованим середовищем розробки або IDE. VBA IDE — це вікно, що містить меню, інші вікна й елементи, що застосовуються при створенні проектів VBA. Редактор VBA активізується командою Сервіс, Макрос, Редактор Visual Basic або натисненням кнопки Редактор Visual Basic панелі інструментів Visual Basic або комбінації клавіш <лівий Alt> + <F11>. Повернутися з редактора Visual Basic в робочу книгу можна натисненням кнопки Viev Microsoft Excel панелі інструментів Standard. В результаті ви потрапляєте в середовище розробки додатків редактора VB. Інтерфейс редактора Visual Basic складається з наступних основних компонент: · вікно Project – VBA Project (Проект); · вікно редагування коду. Вікно розробки має стандартний вигляд для Windows додатків: рядок меню, панель інструментів і два вікна Project (Проект) i Propetis (Властивість). У вікні Project – VBA Project відображається реєстр модулів і форм, які входять до створюваного проекту. Модуль – це лист (не плутати з робочим листом), де набирається код (програма). Подвійним натисненням по значку модуля можна відкрити відповідний модуль. Значок активного модуля виділяється сірим кольором. У VBA кожний робочий лист має модуль. Щоб додати його в проект, необхідно вибрати команду: Вставка, Модуль. В результаті з’являється робочий лист модуля. Для створення програм потрібно скористатись: Вставка, Процедура. Існують два способи запуску програми: 1. Встановити курсор в будь-яке місце програми і натиснути функціональну клавішу F5. 2. Натиснути з будь-якого місця програми піктограму пуск. Виникне модальне вікно (модальне – це означає, що поки ми його не погасили, не можна виконувати ніякі інші дії). Щоб повернутися в модуль, треба натиснути клавішу ОК. Основи мови VBA. Допустимі імена.У VBA користувач визначає імена змінних, функцій, процедур, типів, констант та інших об’єктів. Імена, які вводить користувач, повинні відображати суть позначуваного об’єкту, щоб зробити програму такою, що легко читається. У VBA існують такі обмеження на імена: 1. Довжина імені не повинна перевищувати 255 символів. 2. В імені не може бути крапок, прогалин і наступних символів: %, #, @, $, !, &. 3. Ім’я може містити будь-яку комбінацію букв, цифр, символів, які починаються з букви. 4. Не рекомендується вживати імена, які співпадають з ключовими словами VBA і іменами вбудованих функцій і процедур. 5. Імена повинні бути смисловими. Типи даних.Типи даних відносяться до фундаментальних понять будь-якої мови програмування. Дані можуть бути представлені у вигляді змінних або констант. Константи не можуть змінювати свої значення. Використання констант дозволяє легко читати та виправляти програми. Значення константи задається один раз при об’явленні константи. Синтаксис: [Public | Private] Const Ім’яКонстанти [As Тип] = Вираз Таблиця 4.1.1.
Наведемо приклади числової і рядкової константи: Private Const ПроцСтавка As Single = 0.2 Public Const As String = “abc”. Зміннівикористовуються для тимчасового зберігання даних в оперативній пам’яті, тобто вони ідентифікують області в пам’яті, де зберігається деяка інформація. Після того, як змінна об’явлена, вона вказує на одну і ту ж область пам’яті до тих пір, поки вона не буде знищена. VBA дозволяє об’являти змінні двома способами: явно і неявно. Явне об’явлення змінної означає, що змінна повинна бути об’явлена раніше, ніж її буде використано. Явно змінну можна об’явити одним з наступних способів: Dimан’я_змінної [As тип_даних]- для оголошення локальної змінної – видимої тільки у цій процедурі, при виході з процедури її значення буде втрачено. Publicан’я_змінної [As тип_даних]- для оголошення глобальної змінної – видимої у всіх процедурах усіх модулів. Вона може бути оголошена у стандартному модулі. У процедурах обробки подій об’єктів форми можуть оголошуватись тільки локальні змінні, а використовуватись можуть і глобальні змінні анного проекту. Приклади: DimСost As Currency; Public a, b, KrokZmAs Single Неявне об’явлення змінної здійснюється включенням в кінець її імені спеціального символу, який встановлює тип змінної. В цьому випадку змінну немає необхідності об’являти перед тим, як її використовувати. Допустиме використання наступних символів для визначення типів: Таблиця 4.1.2.
Тип данихвизначає множину допустимих значень, які може приймати вказана змінна. В VBA використовуються наступні типи даних: Таблиця 4.1.3.
Області видимості змінних. 1. Змінні рівня процедури розпізнаються тільки в процедурі, в якій вони описані за допомогою інструкції Dim i Static. Такі змінні називаються локальними. 2. Змінні рівня модуля використовуються тільки в модулі, в якому вони описані перед процедурою за допомогою інструкції Dim або Private, але не в інших модулях даного проекту. 3. Змінні рівня модуля, які описані за допомогою інструкції Рublic, є доступними для всіх процедур проекту. Такі змінні називаються відкритими. Час життя змінної.Змінна Private зберігає своє значення до тих пір, поки виконується процедура, в якій вона описана. Змінні, які описані як Static зберігають своє значення після виходу з процедури, поки працює програма. Масиви.Масивом називається впорядкована послідовність величин, які позначені одним іменем. Впорядкованість полягає в тому, що елементи масиву розміщаються в послідовних комірках пам’яті. Щоб звернутись до елементу масиву треба вказати ім’я масиву та індекс елементу масиву. Елементи масиву мають один і той самий тип. Масиви бувають статичні, динамічні, одновимірні та багатовимірні. Статичні масиви - це масиви, які мають постійний або фіксований розмір. Синтаксис: Dim Ім’яЗмінної(індекси) [As Тип] [,Ім’яЗмінної(індекси) [As Тип]] … Таблиця 4.1.4.
Приклади Dim A(12) As Integer – одномірний масив цілих чисел. Розмір – 12 елементів. Причому за замовчуванням перший елемент масиву – А(0), а останній – А(11). В цьому випадку говорять, що 0 – базовий індекс. Його можна змінити, написавши інструкцію Оption Base 1. Тоді першим елементом масиву буде А(1). Dim B(3, 3) As Single – двовимірний масив (матриця) дійсних чисел. Динамічні масиви Іноді в процесі виконання програми необхідно змінити розмір масиву. В цьому випадку масив об’являють як динамічний. Для цього при об’явленні не треба вказувати розмірність, наприклад Dim R() As Single Потім в програмі необхідно обчислити необхідний розмір масиву в деякій змінній, наприклад, n і змінити розмір динамічного масиву за допомогою інструкції ReDim. Синтаксис: ReDim [Ім’яЗмінної (Індекси) [As Тип] [,Ім’яЗмінної (Індекси) [As Тип]] … Таблиця 4.1.5.
Приклад 1. ReDim R(1 to 10) – в цьому прикладі встановлюються межі динамічного масиву від 1 до 10. Приклад 2. Dim B( ) As String N = 2 M = 2 ReDim B(N, M) N = 3 M = 3 ReDim(N, M) В цьому прикладі показано використання інструкції ReDim. Операції VBA.В програмах на VBA можна використовувати стандартний набір операцій над даними. Існує три типи операцій: математичні (виконуються над числами і їх результатом є числа), відношення (виконуються не лише над числами і їх результатом є логічні значення, наприклад х < у), логічні (застосовуються для логічних виразів і їх результатом є логічні вирази, наприклад Not x And y). Математичні операції: +, -, *, /, \ (цілочисельне ділення), Mod (залишок від ділення), ^ (піднесення до степені). Операції відношення: <, >, <=, >=, <> (не рівно), =. Логічні операції: виконуються з даними логічного типу (boolean). Таблиця 4.1.6.
Нехай ми маємо два вирази: X = (а > b) X = 3 > 2 true Y = (c = d) Y = 4 = 5 false Результат обчислення логічної операції, в залежності від значень операндів X і Y наведені у таблиці. Таблиця 4.1.7.
Інші операції.[Рядок1] & [Рядок2] – зчеплення рядків. Для зчеплення рядків допустимо використання операції [Рядок1] + [Рядок2], але рекомендується застосовувати знак & (амперсант). Приклад: S1 = “Hello” S2 = “Word” S = S1 & S2 Пріоритети (старшинство) операторів:арифметичні > порівняльні > логічні. 1. Арифметичні: виклик функції і дужки, ^, -(зміна знаку), [* ; /], \, mod, [+; -]. 2. Порівняльні: однакове старшинство для всіх 3. Логічні: Not, And, Or, Xor, Equ. Вбудовані функції.В VBA є великий набір вбудованих функцій і процедур, використання яких суттєво спрощує програмування. Ці функції можна розділити на наступні основні категорії: математичні функції, функції перевірки типів, функції перетворення форматів, функції обробки рядків, функції дати і часу. Математичні функції дозволяють проводити будь-які обчислення.
Таблиця 4.1.8.
Таблиця 4.1.9.
|