Аргументы процедуры – это данные, которые передаются процедуре при её вызове и используются ею при выполнении.
Список аргументов – это часть программного кода, в которой указываются аргументы процедуры.
Аргументы записываются в скобках, сразу после имени процедуры. Это может быть один элемент, а может быть и несколько. Отдельные элементы списка аргументов разделяются запятыми.
При записи аргументов, указывается их имя и тип. Для того, чтобы указать тип аргумента используют слово As. Если в скобках указать только имя аргумента, то VBA присвоит этом аргументу тип по умолчанию – Variant.
Пример указания аргументов процедуры
Sub myCode(myNum As Integer)
В данном примере мы создаём процедуру myCode и передаём в неё аргумент myNum с типом целое число.
Переменное число аргументов (Массивы параметров)
В VBA, процедура может иметь переменное число аргументов. Оно указывается с помощью ключевого слова ParamArray, которое определяет массив, содержащий необходимое количество значений аргументов.
Ключевое слово ParamArray указывается только один раз при объявлении процедуры, и оно является обязательным только для того аргумента, который записан в списке последним.
Массив параметров должен всегда иметь тип Variant, поэтому тип переменного числа аргументов не указывают.
Запись переменного числа аргументов
Sub myCode(myNum As Integer, ParamArray myList())
В данном примере, процедуре myCode, при каждом её вызове может передаваться переменное количество аргументов. При этом, параметр myNum с типом Integer должен присутствовать обязательно. Остальные аргументы передаются как элементы массива myList, которых в каждом конкретном случае может быть произвольное количество.
Обязательные и необязательные аргументы процедуры
В VBA различают обязательные и необязательные аргументы процедуры. Необязательному аргументу присваивается значение по умолчанию. Чтобы его обозначить используют ключевое слово Optional.
Синтаксис
Optional Аргумент As Тип = значение по умолчанию
Помните.
Допускаются ситуации, когда все аргументы процедуры необязательные.
Все необязательные аргументы должны быть указаны только после обязательных.
Ключевые слова ParamArray и Optional взаимоисключающие. В списке параметров может присутствовать только одно из этих ключевых слов.
