Ця функція – Public (за замовчуванням), доступна для всіх модулів. Ім'я функції – Sum, аргументи: n – цілого типу, а – числового, обидва аргументи мають кваліфікатор ByRef (за замовчуванням). Функція повертає значення типу Integer.
Private Function F1(a As Single, ParamArray x) As Single
Функція доступна тільки для модуля, у якому вона записана. Аргументи: а - числова змінна типу Single, х - масив довільного числа елементів типу Variant.Функція повертає значення типу Single.
Процедура Function може перебувати в будь-якому місці модуля, за винятком тіла іншої процедури. Викликається процедура по імені із вказівкою фактичних аргументів, у ролі яких можуть виступати константи, змінні, вирази. Виклик може перебувати усередині будь-якого виразу.
Виконання Function починається з першого рядка тіла процедури й триває доти, поки не буде досягнута інструкція End Function або Exit Function (вихід з Function). Далі управління передається в основну процедуру.
Процедура Functionповертає в основнупроцедуру значення, присвоює ім'я Functionоператором: ім'я = вираз. Цей оператор може бути записаний у тілі Function кілька разів, при цьому Function повертає останнє присвоєне значення. Якщо тип функції не заданий явно, то функція повертає значення типу Variant.
|
|
Формально Function повертає тільки одне значення, однак після виконання Function можна використовувати й модифікації аргументів, переданих в Function по посиланню (ByRef).
Приклад 1. Обчислити , визначення максимуму виконати в процедурі Function
Private Sub pp1()
Dim y As Single, a As Single, x As Single
a = Val(InputBox("Введіть а"))
x = Val(InputBox("Введіть x"))
y = (max(3.5, x + a) + max(x, a)) / max(x ^ 2, 120)
MsgBox "y=" & y
End Sub
Private Function max(b As Single, c As Single) As Single
If b > c Then max = b Else max = c
End Function
Приклад 2. Обчислити C = , де n>m. Визначення факторіала виконати в процедурі Function.
Private Sub pp2()