Ahora no tengo el VB a mano... pero la mejor forma es así:
Te conviene guardar los datos en un arreglo, o sea: Dato(0), Dato(1), Dato(2), Dato(3)...
Para declarar un arreglo se pone: Dim Dato (10) as String.
Esto declara un arreglo de 10 "Datos".
Entonces declarás una variable para un contador: Dim X as Integer.
Hacés:
Dato(x) =MSComm1.Input
X= X + 1
Entonces cada vez que leés guardas el dato y incrementás el contador para pasar al próximo casillero del arreglo la próxima vez.
El problema viene cuando no sabés cuántos datos vas a guardar. Con 10 te vas a quedar corto en poco tiempo. Y no es bueno declarar arreglos de 20000 índices si no sabés si los vas a usar todos, desperdiciás memoria y igual te podés quedar corto...
ENTONCES:
Declarás: Dim Dato () as String.
Esto declara un arreglo DINAMICO. Esto quiere decir que no es fijo y que lo podés "agrandar" a medida que lo necesitás.
Para agrandarlo usás REDIM PRESERVE. Redim cambia el tamaño del arreglo y Preserve es para que guarde los datos que tenés hasta el momento (sinó los borra y empieza un arreglo vacío).
Te quedaría así:
Redim Preserve Dato(x + 1)
Dato(x) =MSComm1.Input
X= X + 1
Este código primero agranda el array una posición más de lo necesario y después guarda en el lugar anterior.
Se debe tener en cuenta que cuando se declara un array, por default, la primera posición es 0.
Cualquier cosa preguntá.
Salu2.