Как в пользовательской функции создать один или несколько необязательных аргументов?

Для создания необязательных аргументов следует использовать ключевое слово Optional. Обратите внимание на то, что все необязательные аргументы должны располагаться последними в списке аргументов и иметь тип Variant, если Вы планируете использовать функцию IsMissing().

code: #vba
Function CellText(Arg1 As String, Optional Arg2) As String
End Function

Для того, чтобы проверить, было ли передано значение необязательному аргументу, можно использовать функцию IsMissing()

code: #vba
Function CellText(Arg1 As String, Optional Arg2) As String
    If IsMissing(Arg2) = True Then
       CellText = Arg1 & "A"
    Else
       CellText = Arg1 & Arg2
    End If
End Function

Два примера вызова этой пользовательской функции из ячеек рабочего листа:

[code]=CellText("Текст") =CellText("Текст";"B") [/code]

При необходимости можно указать значение, которое будет использоваться по умолчанию:

code: #vba
Function CellText$(Arg1$, Optional Arg2$ = "C", Optional Arg3$ = ";")
    CellText = Arg1 & Arg3 & Arg2
End Function

Три примера вызова этой пользовательской функции из ячеек рабочего листа:

=CellText("Текст")
=CellText("Текст";"B")
=CellText("Текст";"B";" ")
Поделиться:

Похожие статьи: