Ripulire testo in una macro

Ci sono state molte le macro che ho scritto con il preciso scopo di "ripulire" il testo prima di fare qualcosa di diverso con esso. Per esempio, inserendola in un nuovo documento o salvarlo in un file di testo. Spesso questo processo è noioso, coinvolgendo esaminando ogni personaggio in una stringa di testo e poi fare qualche decisione su cosa fare con esso se il carattere non è all'interno di un intervallo di caratteri accettabili.

VBA include un interessante metodo che può essere utilizzato per aiutare ripulire testo. Si chiama, in modo abbastanza appropriato, il metodo CleanString. Si utilizza come illustrato di seguito:

sCleanedUp = Application.CleanString (Selection.Text)

Questa istanza imposta la stringa sCleanedUp pari ad una versione "ripulita" del testo selezionato. Che cosa fa esattamente il metodo CleanString fare? Si rimuove i caratteri non stampabili nella gamma ANSI tra 1 e 29, con l'eccezione di 7, 9, 10 e 13. Nel caso di caratteri ANSI 7, viene rimosso se non è preceduta da caratteri 13, nel qual caso esso viene sostituito con una linguetta (ANSI 9). Nel caso di caratteri ANSI 10, viene sostituito con il carattere 13 se preceduto dal carattere 13, nel qual caso viene rimosso. Personaggi 9 e 13 non vengono modificate.

Un certo numero di altri caratteri fuori della gamma da 1 a 29 sono anche colpiti dal metodo CleanString. ANSI carattere 31 (il trattino opzionale), carattere di 172 (anche un trattino opzionale), e il carattere 182 (il carattere segno di paragrafo) sono tutti rimossi. ANSI carattere 160 (lo spazio non-breaking), carattere di 176 (un altro spazio non-breaking), e il carattere 183 (un carattere di punto) sono ciascuna sostituiti con spazi. Tutti gli altri personaggi sono invariate.

WordTips è la vostra fonte per la formazione Microsoft Word conveniente. (Microsoft Word è il più popolare software di elaborazione testi del mondo.) Questa punta (1460) si applica a Microsoft Word 97, 2000, 2002, e 2003. È possibile trovare una versione di questo suggerimento per l'interfaccia a barra multifunzione di Word (Word 2007 e più tardi) qui: Ripulire testo in una macro.