Ok, capisco che l'indirizzo e-mail è all'interno di un testo... Scusate...
Ma il consiglio dato da Filips, non mi sembra che raggiunga l'obiettivo, cioè di estrapolare da qualunque testo una 'e-mail', infatti c'è solo un ciclo che trova su quale posizione del 'testo' si trova il primo spazio... e poi...?!
Credo che bisognerebbe fare un ragionamento che porti, anche se pur semplice, ad un algoritmo risolutivo.
Inzierei con descrivere i passi, senza scriverti il codice, ma per iniziare a ragionare insieme:
Ammettiamo che le variabili:
- Note (contiene il testo)
- Mail (conterrà l'e-mail estrapolata)
- PosAt (conterrà la posizione di AT = chiocciola)
- ISx (sarà l'indice che scandirà alla sinistra di @)
- IDx (sarà l'indice che scandirà alla destra di @)
- LimSx (conterrà la prima posizione a sinistra della e-mail)
- LimDx (conterrà l'ultima posizione a destra della e-mail)
Avremo che la posizione di @
PosAt = Instr(Note,"@")
Che se chiaramente = 0 o meglio < 1 - Dirà che NON ci sono indirizzi in quanto NON c'e' una "@"
poi potremo avere 2 loop di scansione a sinistra e a destra di @ (fino a che troveremo 1 spazio e destra e 1 a sinistra e sommando 1 a sin. e sottraendo 1 a destra, avremo:
LimSx (primo carattere dell'e-mail) e LimDx (ultimo carattere)
dopo, puntando al primo per la diff. dei limiti + 1 avremo la substringa estrapolata dal testo contenente l'e-mail, del tipo:
Mail = Mid(Note,LimSx, LimDx-Limsx+1)
Però attenzione!!! il programma funzinerebbe solo se l'e-mail si trova nel mezzo a 2 spazi e quindi ha bisogno di una serie di verifiche e parti che controllano/agiscono da Gestire nel caso di:
- se l'e-mail è l'unica cosa contenuta nel campo Note...?! (NON ci saranno spazi ai lati dell'e-mail e che facciamo ??!!)
- se l'email è all'inizio o in fondo, avremo lo stesso problema di mancanza dello spazzio in fondo...
Spero di averti dato un'idea x sviluppare la routine/funzione che ti serve.
Saluti.