El truco es simplemente usar el tipo "collection" como retorno de la función.
Os dejo este ejemplo, donde podeis ver como se devuelve el valor de dos variables "pieza" y "fuerza", desde una función:
Public Sub Form_Open()
Dim valores As Collection
Dim pieza As String
Dim fuerza As Integer
valores = calculo()
pieza = valores["pieza"]
fuerza = valores["fuerza"]
Print "El valor de pieza: " & pieza & "\n" & "El valor de fuerza: " & fuerza
End
Public Function calculo() As Collection
Dim coleccion As New Collection
coleccion.Add("torre", "pieza")
coleccion.Add(3, "fuerza")
Return coleccion
End
Dim valores As Collection
Dim pieza As String
Dim fuerza As Integer
valores = calculo()
pieza = valores["pieza"]
fuerza = valores["fuerza"]
Print "El valor de pieza: " & pieza & "\n" & "El valor de fuerza: " & fuerza
End
Public Function calculo() As Collection
Dim coleccion As New Collection
coleccion.Add("torre", "pieza")
coleccion.Add(3, "fuerza")
Return coleccion
End
Saludos
Nota:
Otra forma que he usado, antes de "descubrir" el tipo collection, era crear una clase con varias propiedades y usar esta clase como objeto que retorno, pero me parece más "simple" el uso de collection.