ByRef: аргументът се предава по адрес. ByRef се подразбира.
ByVal: аргументът се предава по стойност. Стойността му може да се променя от извиканата подпрограма.
char: знак за деклариране на тип.
typename: име на примитивен тип данни. Могат да се задават и типове, дефинирани в библиотека или модул.
= expression: задава подразбирана стойност за аргумента, съответстваща на декларирания му тип. Всеки аргумент с указана стойност по подразбиране трябва да е придружен с Optional.
ParamArray: използвайте ParamArray, когато броят на параметрите е неопределен. Типичен пример са дефинираните от потребителя функции за Calc. Употребата на ParamArray трябва да е ограничена до последния аргумент на подпрограмата.
Използването на ParamArray или = expression изисква поставянето на Option Compatible преди изпълнимия програмен код на модула.
Когато се използва Option VBASupport 1, аргументите с Optional и без подразбирана стойност (= expression) се инициализират според своя тип данни, освен ако е Variant.
Sub ExampleExit
Dim sReturn As String
Dim sListArray(10) As String
Dim siStep As Single
For siStep = 0 To 10 ' Запълваме масива с тестови данни
sListArray(siStep) = chr$(siStep + 65)
MsgBox sListArray(siStep)
Next siStep
sReturn = LinSearch(sListArray(), "B")
Print sReturn
End Sub
Function LinSearch( sList(), sItem As String ) As Integer
Dim iCount As Integer
' Linsearch претърсва TextArray:sList() за TextEntry:
' Връщаната стойност е индексът на елемента или 0 (Null)
For iCount=1 To Ubound( sList() )
If sList( iCount ) = sItem Then
Exit For ' sItem е намерен
End If
Next iCount
If iCount = Ubound( sList() ) Then iCount = 0
LinSearch = iCount
End Function