Отже, функція. Що це таке? Функція виконує службове дію, наприклад обчислення, і повертає значення. Викликати функцію можна, написавши її ім'я та передавши їй аргументи, в потрібному місці вашої програми. Чим же корисна функція? Зараз поясню на дуже простому прикладі! Наприклад, Ви пишіть простеньку програму, яка обчислює середнє арифметичне трьох чисел, потім множить отриманий результат на кожне число і забирає їх суму. Неважливо навіщо вам така програма, це ж приклад ;-). Ось вона (пишемо в модулі):
Dim a As Integer оголошуємо змінну для першого числа
Dim b As Integer оголошуємо змінну для другого числа
Dim c As Integer оголошуємо змінну для третього числа
a = InputBox ( "Введіть перше число") отримуємо перше число
b = InputBox ( "Введіть друге число") отримуємо друге число
c = InputBox ( "Введіть третє число") отримуємо третє число
проробляємо потрібну операцію над числами
виводимо результат на екран
MsgBox (((((a + b + c) / 3) * a) * b) * c) - (a + b + c)
Начебто все нормально. А тепер уявіть собі, що програма почала шириться і формулою доводиться користуватися з різних місць програми і Ви повинні тому її колом писати 8: -O.
Так, негарно виходить. Для цього можна скористатися функцією, яка буде мати цю формулу і тільки чекати свого виклику і ваших чисел ;-)! Напишемо таку функцію і назвемо її, наприклад FuncX (поза межами підпрограми Sub): оголошуємо функцію і задаємо передані аргументи
Public Function FuncX (a, b, c) As Integer присваевает собі значення формули
FuncX = (((((a + b + c) / 3) * a) * b) * c) - (a + b + c)
Є! А тепер Ви можете викликати функцію з будь-якого місця вашої програми, написавши її ім'я та передавши три числа a, b і з:
FuncX (a, b, c) або FuncX (4, 5, 6)
і не треба більше цієї довгої формули! замість
(((((A + b + c) / 3) * a) * b) * c) - (a + b + c)
Тепер можна писати
Неправда це зручніше? Сподіваюся я пояснив зрозуміло;)?
Примітка: передані значення функції змінюються! напрмер:
Function ABC (X, Y)
ABC = (2 * X) + (2 * Y)
Тепер X дорівнює 2 * Х, а Y дорівнює 2 * Y, тобто їх значення подвоїлися. Для того щоб передані значення не змінювалися то в дужках треба писати перед аргументом ByVal. наприклад:
Function ABC (ByVal X, ByVal Y)
Самі того не підозрюючи, ми дуже часто використовуємо функції. Наприклад InputBox. дивіться:
A = InputBox (Prompt, Title)
А - це результат, що повертається функцією. InputBox - це ім'я функції. Prompt і Title - передані значення. Але функція це стандарт
Інформація про роботу «Для чого потрібна процедура Function?»