Buffer è un'array?
Ho come l'impressione che il problema sia dovuto al fatto che certe volte questo 'buffer' possa essere nullo oppure avere addirittura una quantità di dati che supera lo stesso spazio stringa di Vb...
Fai dei controlli su 'buffer' prima di andare nel ciclo ..
Un consiglio:
Cerca di spostare la definizione del tipo dati 'buffer' da Variant ad un tipo dati definito ... sarà senz'altro più gestibile e comprensibile ...
Variant ...
Bye