Тут і далі ( означає, що використовується один з варіантів: Private, Public або Static.
Private - означає, що процедура Function доступна для інших процедур тільки того модуля, у якому вона описана.
Public -означає, що процедура Function доступна для інших процедур у всіх модулях.
Static –означає, що локальні змінні процедуриFunction зберігаються в проміжках часу між викликами цієї процедури.
Ім'я – ідентифікатор функції, що задовольняє стандартним правилам побудови імен;
Тип– тип значення, що повертається Function;
Список аргументів - список змінних, що представляють аргументи, які передаються в процедуру Function при її виклику. Аргументи в списку відділяються комами.
Структура аргументу:
[Optional] [ByVal ½ByRef] [ ParamАrray] Ім'я [As тип]
Optional - указує, що даний аргумент є необов'язковим. Аргументи, позначені кваліфікатором Optional, повинні перебувати наприкінці списку аргументів.
ByVal - означає, що аргумент передається за значенням. При цьому виключається можливість зміни значення аргументу процедури після її завершення.
ByRef–аргумент передається по посиланню. Передача аргументу по посиланню дає процедурі доступ до вмісту змінної за її адресою в пам'яті. Значення змінної може бути змінене процедурою, що викликається.
За замовчуванням установлюється ByRef.
ParamАrray - позначає необов'язковий аргумент, що є масивом довільного числа змінних типу Variant. Цей аргумент може бути тільки останнім у списку аргументів. З ним не можуть використовуватися ключові слова ByVal, ByRef, Optional.
Тип - тип аргументу, може використовуватися будь-який стандартний тип даних. За замовчуванням використовується Variant.
Приклади заголовка процедури-функції:
Function Sum(n Аs Integer, a As Single) Аs Integer
Ця функція – Public (за замовчуванням), доступна для всіх модулів. Ім'я функції – Sum, аргументи: n – цілого типу, а – числового, обидва аргументи мають кваліфікатор ByRef (за замовчуванням). Функція повертає значення типу Integer.