Аргументи з певними типами використовуються з тих же причин, по яким використовуються типізовані змінні або результати функції. Визначення типів аргументів для функції-процедури допомагає користувачеві при виконанні функції вводити аргументи правильного типу в правильному порядку. Синтаксис елемента Arglist:
[Optional] [ByVal | ByRef] [ParamArray] імяПеременной_
[As тип] [= замовчуванням]
Optional - ключове слово, яке вказує, що аргумент не є обов'язковим. При використанні цього елемента всі наступні аргументи, які містяться в списку Arglist, також повинні бути необов'язковими і описані за допомогою ключового слова Optional;
Function Name (tstr As String, Optional nChar As Long) As String
ByVal - вказує, що цей аргумент передається за значенням;
ByRef - вказує, що цей аргумент передається по посиланню. Опис ByRef використовується в VBA за замовчуванням;
ParamArray - ключове слово ParamArray дозволяє задавати довільну кількість аргументів. Воно не може бути використано зі словами Byval, ByRef або Optional.
= За замовчуванням - значення аргументу за замовчуванням.
Приклад 2. Визначення типу даних аргументу функції LenTrim
Function LenTrim (tStr As String) As Long
'Повертає довжину tStr без провідних і хвостових прогалин
Підпрограма - являє собою певний набір операторів, складений користувачем і розташований окремо від основної програми. Підпрограма має наступний синтаксис:
[Private | Public] [Static] Sub Name ([Arglist]) [As Type]
Використовувати власні функції-процедури в операторах VBA треба так само, як будь-які вбудовані функції. Всі правила і умови по використанню вбудованих функцій застосовні до призначених для користувача функцій-процедур. При виконанні функції необхідно включати список аргументів у круглих дужках.
Для виклику процедури Sub використовується наступні способи:
Call ІмяПроцедури (СпісокФактіческіхПараметров)
Dim з As Double 'з - глобальний параметр
Function F (ByVal x As Integer) As Integer
Sub Assistant (ByVal a As Integer, ByVal b As Integer)
'Процедура, що знаходить суму двох чисел і виводить
'Результат в діалоговому вікні
'Процедура, що знаходить суму двох чисел і виводить
'Результат в діалоговому вікні
Dim x, у As Double
'Виклик процедури з фактичними параметрами
Call Assistant (1, 3)
'Первісне привласнення змінним значень,
'З подальшим викликом процедури
Call Assistant (x, F (x))
Assistant x, у + 2
'Використання функції як фактичного параметра