Private Sub Form_Load()
Dim v()
Dim t As Timer
Dim p As PictureBox
Dim f() As Form
ReDim f(0 To 1)
ReDim v(0 To 9)
stop ' nota como se va a tragar todo esto, un dato inmediato, un doble, un picturebox, un string, un timer, varios forms.... pulsa F8 para continuar.
v(0) = 3
v(1) = CDbl(3)
Set v(2) = p
v(3) = "Hola"
v(4) = 3
Set v(5) = t
Set f(0) = Form1: Set f(1) = New Form1
Set v(6) = f(1)
set v(7)=f(0)
stop ' nota que la siguiente línea dará error, deberás anteponerle SET (como ves en los casos anteriores) ya que su valor no es un tipo de datos genérico sino un objeto.
v(8)=v(6)
let v(9)=43
Call Suma(v)
End Sub
Function Suma(ParamArray vector())
Dim Y As Double
Dim t As Variant
For Each v In vector
MsgBox VarType(v)
stop ' te ha dado el valor 8204 que son 8192= vbArray + 12 = vbVariant (array de variant), pulsa f8 para continuar...
t = v
MsgBox "La dirección de memoria de 't' es: " & VarPtr(t) & " y la de 'v' es: " & VarPtr(v)
MsgBox UBound(vector())
Next v
Suma = Y
End Function