Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

End Sub. Перед процедурою також можна ставити одне зі слів Public або Private в залежності від того, буде процедура доступна для всіх проце­дур з усіх модулів



Перед процедурою також можна ставити одне зі слів Public або Private в залежності від того, буде процедура доступна для всіх проце­дур з усіх модулів, або тільки для процедур того ж самого модуля.

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

Список аргументів крім імен змінних із зазначенням типу містить слова ByVal або ByRef, тобто має вигляд:

ByVal ім’яЗмінної As тип або

ByRef ім’яЗмінної As тип

ByVal – вказує, що аргумент передається за значенням. Це озна­чає, що під час виклику процедури значення фактичного параметра записується на місце формального, і потім використовується в обчис­леннях. Будь-які зміни формального параметра, оголошеного за значенням, не спричинять змін фактичного параметра.

ByRef – вказує, що аргумент передається за посиланням (тобто за адресою). Опис ByRef використовується в VBA за замовчанням.

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

Таким чином, параметри процедури поділяють на дві групи:

вхідні, які використовують для обчислень у процедурі, і переда­ють звичайно за значенням;

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

Виклик процедури здійснюється за допомогою її імені та списку фактичних параметрів, записаних в тому ж порядку, що і формальні (див. задачу 4.2). Якщо параметри завдаються явно, то їхній порядок значення не має.

Для виклику процедури може використовуватись й оператор CALL (список фактичних параметрів). Порядок параметрів важливий.

Задача 4.2. Написати процедури для обчислення коренів квад­ратного рівняння за заданими коефіцієнтами.

У процедурі буде три вхідних параметри – коефіцієнти рівняння a, b та c і три вихідних параметри – корені x1, x2 і ознака наявності дійсних коренів – pr. Параметр pr набуває значення True (істина),якщо рівняння має дійсні корені, тобто дискримінант D ≥ 0.

Sub Корені (ByVal a As Single, ByVal b As Single, ByVal c As Single, _

ByRef x1 As Single, ByRef x2 As Single, ByRef pr As Boolean)

Dim D As Single ' об'ява внутрішньої змінної D

D = b ^ 2 - 4 * a * c ' обчислюємо дискримінант

pr = (D >= 0) ' pr=True, якщо дійсні корені є

If pr Then

x1 = (– b + Sqr(D)) / (2 * a)

x2 = (– b – Sqr(D)) / (2 * a)

End If





Дата публикования: 2015-01-10; Прочитано: 202 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.007 с)...