Direi che manca qualcosa:
comunque gli indici in vb vanno tra parentesi tonde, non quadre.codice:messaggio=replace(messaggio, array1(a), array2(a), 1, 1)
edit:
Anche il ciclo va rifatto a questo punto, io lo metterei così (non l'ho provato):
codice:i = 0 for a=0 to ubound(array1) Do While instr(messaggio,array1[a])>0 or i<8 messaggio=replace(messaggio, array1(a), array2(a), 1, 1) i = i + 1 loop if i > 7 then exit for next a