Hola de nuevo, al parecer mi duda fue un problema de comprensión de tu mensaje, y al ver como utilizabas el código mas simple de una manera, digamos algo inadecuada, no se porque se me ocurrio que no tenias demasiada experiencia en VB
 
Por ejemplo cuando haces 
c(i) = "" & i en VB suele hacerse 
c(i) = cstr(i) ya que resulta mas fácil de 'leer' 
De otra parte en vez de 
MsgBox "" & c(1) lo normal es poner 
MsgBox c(1) 
Y desde luego, no se me ocurrió pensar que lo que pretendías era convertir una cadena de caracteres en un Array ya que de lo contrario te habría aconsejado que utilizaras una funcion genérica incorporada a un módulo o formulario como la siguiente que es similar al Split de VB    
Código vb:
Ver original- Public Function StringToChar(Cadena As String) As String() 
-   ' Convierte Cadena en Array (Elemento 0 no se utiliza) 
-   ReDim ArrayTemp(Len(Cadena)) As String 
-   Dim Caracter As Integer 
-   For Caracter = 1 To Len(Cadena) 
-     ArrayTemp(Caracter) = Mid$(Cadena, Caracter, 1) 
-   Next 
-   StringToChar = ArrayTemp 
- End Function 
Esta funcion se utiliza de la siguiente manera por ejemplo. 
Dim Caracteres() As String
Caracteres = StringToChar("Prueba")  
y te devuelve
Caracteres(1)="P"
Caracteres(2)="r"
Caracteres(3)="u"
Caracteres(4)="e"
Caracteres(5)="b"
Caracteres(6)="a" 
Saludos y disculpa si entendi mal.