Una forma de devolver varios parámetros en un mismo retorno de función es con una clase específicamente creada, con todos los parámetros que puedas llegar a devolver aunque en cada caso no se utilicen.
Por ejemplo vamos a realizar una función para dividir, pasaremos el dividiendo y el divisor y obtendremos el cociente, el resto, el cociente parte entera truncada, y un booleano (true o false) si podemos realizar la división, es decir, en caso de que el divisor sea 0 devolvemos false.
Public Class class_resultadoDivision
Public success As Boolean = False
Public Resultado As Double = 0
Public ResultadoParteEntera As Integer = 0
Public Resto As Integer = 0
End Class
Declaramos una función cuyo valor resultado es un objeto de la clase anteriormente creada.
Public Function f_division(dividendo As Double, divisor As Double) As class_resultadoDivision
Dim devolver As New class_resultadoDivision
If divisor <> 0 Then
devolver.Resultado = dividendo / divisor
devolver.ResultadoParteEntera = dividendo \ divisor ' sin decimales
devolver.Resto = dividendo Mod divisor
devolver.success = True
End If
f_division = devolver
End Function
En la llamada a la función procedemos así:
Dim res As class_resultadoDivision = f_division(25, 5)
MsgBox(res.success & " " & res.Resultado & " " & res.ResultadoParteEntera & " " & res.Resto)