.
Leyendo un poco llegue a la respuesta, se los dejo por si a alguien le llegase a ocurrir algo similar!¡.
Option Explicit
Option Base 0
Private Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" _
(Destination As Any, Source As Any, ByVal Length As Long)
Private Declare Function SafeArrayAccessData Lib "Oleaut32" _
(ByVal psa As Long, pvData As Long) As Long
Private Declare Function SafeArrayUnaccessData Lib "Oleaut32" _
(ByVal psa As Long) As Long
' // msvbvm60.DLL
Private Declare Function VarPtrArray Lib "msvbvm60.dll" Alias "VarPtr" _
(Var() As Any) As Long
Private Sub Form_Load()
Dim VarVariant() As Variant
Dim VarVariantDest() As Variant
Dim psa As Long 'Pointer to SAFEARRAY
Dim hr As Long 'HRESULT
Dim pData As Long
ReDim VarVariant(3)
VarVariant(0) = "Miguel"
VarVariant(1) = "Angel"
VarVariant(2) = "Ortega"
VarVariant(3) = "Avila"
CopyMemory psa, ByVal VarPtrArray(VarVariant), 4
ReDim Preserve VarVariantDest(7)
hr = SafeArrayAccessData(psa, pData)
If hr = 0 Then
CopyMemory VarVariantDest(4), ByVal pData, 4 * 16
SafeArrayUnaccessData psa
End If
CopyMemory psa, ByVal VarPtrArray(VarVariant), 4
ReDim Preserve VarVariantDest(14)
hr = SafeArrayAccessData(psa, pData)
If hr = 0 Then
CopyMemory VarVariantDest(11), ByVal pData, 4 * 16
SafeArrayUnaccessData psa
End If
For hr = LBound(VarVariantDest) To UBound(VarVariantDest)
Debug.Print hr, VarVariantDest(hr)
Next hr
End Sub
Dulces Lunas!¡.