yandex rtb 1
ГоловнаЗворотній зв'язок
yande share
Главная->Різні конспекти лекцій->Содержание->4.7 Опис і створення процедур

Організація баз даних і знань

4.7 Опис і створення процедур

 

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

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

4.7.1 Класифікація процедур

Процедури VBA можна класифікувати за декількома ознаками: за способом використання (виклику) у програмі, за способом запуску процедури на виконання, по способу створення коду процедури, за місцем перебування коду процедури в проекті.

Процедури VBA поділяються на підпрограми й функції. Перші описуються ключовим словом Sub, другі - Function. Ми дуже рідко використовуємо термін підпрограма, характерний для VBA, і замість нього використовуємо термін процедура.

За способом створення коду процедури поділяються на звичайні, розроблювальні "вручну", і на процедури, код яких створюється автоматично генератором макросів (MacroRecoder); їх називають також макро-процедурами або командними процедурами, оскільки їх код - це послідовність викликів команд відповідного додатка Office.

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

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

Ще один спеціальний тип процедур - процедури-властивості Property Let, Property Set й Property Get. Вони служать для завдання й одержання значень закритих властивостей класу.

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

4.7.2 Синтаксис процедур і функцій

Опис процедури Sub в VBA має такий вид:

[Private | Public] [Static] Sub ім'я([перелік-аргументів])

   тіло-процедури

End Sub

Ключове слово Public у заголовку процедури використовується, щоб оголосити процедуру загальнодоступною, тобто дати можливість викликати її із всіх інших процедур всіх модулів будь-якого проекту. Альтернативний ключ Private використовується, щоб закрити процедуру від всіх модулів, крім того, у якому вона описана. За замовчуванням процедура вважається загальнодоступною.

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

Параметр ім'я - це ім'я процедури, що задовольняє стандартним умовам VBA на імена змінних.

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

Послідовність операторів тіло-процедури задає програму виконання процедури. Тіло процедури може включати як "пасивні" оператори оголошення локальних даних процедури (змінних, масивів, об'єктів й ін.), так й "активні" - вони змінюють стани аргументів, локальних і зовнішніх (глобальних) змінних й об'єктів. У тіло можуть входити також оператори Exit Sub, що приводять до негайного завершення процедури й передачі керування в основну програму. Кожна процедура в VBA визначається окремо від інших, тобто тіло однієї процедури не може включати опису інших процедур і функцій.

Синтаксис визначення процедур-функцій схожий на визначення звичайних процедур:

[Public | Private] [Static] Function ім'я [(перелік-аргументів)] [As тип-значення]

   тіло^-функції

End Function

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

 

52

Загрузка...
yandex rtb 4