Для создания произвольного количества аргументов следует использовать ключевое слово ParamArray. Обратите внимание на то, этот аргумент должен быть последним в списке аргументов, иметь тип Variant и он не может использоваться вкупе со словами ByVal, ByRef или Optional.
Function CellText(ParamArray Massiv())
For Each vItem In Massiv
CellText = CellText & CStr(vItem)
Next
End Function
Три примера вызова этой пользовательской функции из ячеек рабочего листа:
=CellText("Текст";"A";"B";"C")
=CellText("ОШИБКА: ";НД())
=CellText("Текст";;;"M")
Если существует вероятность, что один или несколько аргументов могут быть пропущены (см. третий пример), то в этом случае, также можно использовать функцию IsMissing()
Function CellText(ParamArray Massiv())
For Each vItem In Massiv
If Not IsMissing(vItem) Then _
CellText = CellText & CStr(vItem)
Next
End Function