Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
VB_2.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
218.62 Кб
Скачать

Виклик процедури

Після створення процедури її необхідно викликати у потрібному місці го­ловної (викликаючої) програми. Існують два способи звертання до процедур: за допомогою Call і шляхом безпосереднього звертання за іменем процедури.

Повний синтаксис звертання до процедури-підпрограми має на­ступ­ний вигляд:

1- спосіб

Call Ім'я_Процедури ([Список_Параметрів])

2- спосіб

Ім'я_Процедури [Список_Параметрів]

Наприклад:

Call CalcRectangle(a, b, s, p)

або

CalcRectangle a, b, s, p

де a, b, s, p – фактичні параметри. В обох випадках значення параметру Ім'я_Процедури має співпадати з іменем про­це­ду­ри заданим за допомогою опе­ратора Sub при її визначенні. Па­ра­метра­ми мо­жуть бути імена змінних або кон­станти. Аргументи процедури від­окрем­лю­ють­ся один від одного ко­ма­ми.

Передача параметрів процедури

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

Private Sub Run_Click()

Call CalcRectangle(a, b, s, p)

Print “Площа=”, s

Print “Периметр=”, s

Print “______________”

CalcRectangle a, 2, s, p

Print “Площа=”, s

Print “Периметр=”, s

End Sub

Як бачимо, при виклику процедури-підпрограми можна задавати числові зна­чен­ня для вхідних фактичних параметрів.

Зауваження. Між формальними і фактичними параметрами має бути од­но­значна відповідність, як за типом так і за кількістю. Якщо перед іменем фор­мального параметра вказати ключове слово Option, то він буде не обов’язковим.

Якщо передача параметра здійснюється за адресою (за посиланням), то процедурі передається адреса змінної, а не саме зна­чен­ня цієї змінної. Таким чином, усі операції, що відносяться до даної змін­ної, як все­ре­ди­ні про­цедури, так і у викликаючій програмі будуть виконуватися з однією і тою са­мою коміркою пам’яті. Щоб підкреслити факт передачі параметрів за ад­ре­сою, при описі параметрів процедури використовують ключове слово ByRef.

Якщо параметри передаються за значенням, то фактичний аргумент бе­реться у дужки або перед аргументом пишеться ByVal. При цьому процедурі пере­даються значення змінних і зміни параметрів у процедурі не впливають на зна­чення змінних у викликаючій програмі. За замовчуванням вважається, що якщо при оголошенні параметрів процедури не вказано спосіб передачі ар­гу­ментів, то вони передаються за адресою. Наприклад:

Call CalcRectangle(ByVal a, ByVal b, s, p)

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

При написанні процедури інколи буває необхідно достроково завершити її виконання і повернути управління у викликаючу програму. Особливо це ак­ту­ально у складних програмах та у процедурах, які входять до їх складу. В такому ви­падку необхідно скористатися оператором Exit Sub.

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]