La proprietà RThreshold indica ogni quanti caratteri ricevuti si deve verificare l'evento OnComm. E' anche opportuno, nell'evento OnComm, verificare il valore della proprietà CommEvent, la quale ci dice il motivo per cui si è verificato l'evento: quando vale comEvReceive significa che si è ricevuto qualcosa; questo perché in realta l'evento OnComm può verificarsi anche per altre cause.

Definirei la variabile data come String anziché Variant.