Тема 9. Використання процедур та функцій користувача.

Питання теми та основні терміни.

Створення та використання процедур.

Створення та використання функцій.

Використання допоміжних алгоритмів в електронних таблицях.

Допоміжний алгоритм, процедура, функція, формальний параметр, фактичний параметр

Інформаційні матеріали теми

9.1. Створення та використання процедур.

Поняття допоміжного алгоритму.

При розробці проектів може виникнути необхідність у використанні власних допоміжних алгоритмів опрацювання даних. VBA надає таку можливість. Як зазначалось в темі 3, розрізняють два види таких алгоритмів: процедури та функції. Вони можуть бути реалізовані службовими словами Sub, Function та Property. Допоміжний алгоритм типу Sub є процедурою користувача і буде викликатись як оператор мови VBA. Допоміжний алгоритм типу Function є функцією користувача і може викликатись у виразах в лівій частині оператора присвоювання. Допоміжний алгоритм типу Property призначений для створення та зміни властивостей елементів управління

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

Оголошення процедури

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

Private Sub ім’я(формальні параметри)

Тіло процедури

End Sub

де Private, Sub, End – службові слова,

ім’я – ім’я процедури, під яким вона буде використовуватись;

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

Тіло процедури – оператори, що задають опрацювання даних в процедурі.

Формальні параметри задають вихідні дані та результати роботи процедури. Для них обов’язково потрібно вказати тип даних. Наступна процедура задає обчислення суми двох чисел.

Private Sub Sum(x%, y%, z%)

 z = x + y

End Sub

В даному прикладі перших два параметри задають вихідні дані, а третій – результат. Програміст сам визначає, які саме параметри будуть вихідними, а які – результуючими. Кількість вихідних та результуючих параметрів може бути довільною. Рекомендується спочатку вказувати вихідні дані, а потім – результати.

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

Private Sub Errors()

 If (not opt1.value) and (not opt2.value) then

MsgBox "Оберіть перемикач!", 0, "Помилка "

End Sub

Виклик процедури здійснюється оператором Call, який має наступний формат запису:

Call ім’я(фактичні параметри)

де Call – службове слово;

фактичні параметри – параметри, для яких фактично виконується процедура. Тип цих параметрів повинен відповідати типові формальних параметрів. Порядок підстановки параметрів повинен відповідати порядку слідування формальних параметрів. Так, для першого прикладу виклик процедури має такий вигляд:

Call Sum(a,b,c)

Фактично при цьому буде виконаний такий оператор:

c = a + b.

Передчасне завершення процедури.

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

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 
25 26 27 28  Наверх ↑