Si podes intercambiar texto entonces es sencillo. Suponiendo que tenes la lista de contactos en un ListBox, creas una cadena con todas los contactos, delimitado por algun caracter, vamos a suponer que es Chr$(1).
Function MakeStrFromList(ListSpec As ListBox) As String
Dim sData$, i%
For i = 0 To ListSpec.ListCount-1
sData = sData & ListSpec.List(i) & Chr$(1)
next
MakeStrFromList = sData
End Function
Luego envias la cadena y cuando llega a destino usas Split para obtener los elementos, y luego los volves a agregar a otra lista.
Sub StrToList(StrSpec As String)
Dim sItems$(), i%
sItems = Split(StrSpec, Chr$(1))
For i = LBound(sItems) To UBound(sItems)
Call lstContactos.AddItem(sItems(i))
Next
End Sub
Es solamente una idea, pero es lo mas sencillo. Tambien se podria crear una estructura de datos con mas informacion, pero esto es solo para ejemplificar.
Saludos.