Schoonmaken tekst in een Macro

Er zijn veel macro's die ik met het uitdrukkelijke doel van het "opschonen" tekst voorafgaand aan het doen van iets anders mee hebben geschreven geweest. Bijvoorbeeld, het plaatsen van het in een nieuw document of op te slaan in een tekstbestand. Vaak is dit proces is vervelend, waarbij het onderzoek van elk teken in een tekenreeks en vervolgens het maken van enkele beslissing over wat te doen als het karakter is niet binnen een bereik van aanvaardbare karakters.

VBA bevat een interessante methode die kan worden gebruikt om te helpen opruimen tekst. Het heet, toepasselijk genoeg, de CleanString methode. Je gebruikt het zoals hier getoond:

sCleanedUp = Application.CleanString (Selection.Text)

Deze instantie stelt de sCleanedUp snaar gelijk aan een "opgeruimd" versie van de geselecteerde tekst. Wat doet de CleanString methode doen? Het verwijdert niet-afdrukbare tekens in ANSI bereik van 1 tot 29, met uitzondering van 7, 9, 10 en 13. In geval van ANSI karakter 7, wordt deze verwijderd tenzij voorafgegaan door teken 13, waarbij wordt vervangen door een lip (ANSI 9). Bij ANSI karakter 10 is vervangen karakter 13 tenzij voorafgegaan door teken 13, waarbij het wordt verwijderd. Tekens 9 en 13 worden niet gewijzigd.

Een aantal andere personages buiten het bereik van 1 tot en met 29 worden ook beïnvloed door de CleanString methode. ANSI-tekenset 31 (de optionele koppelteken), karakter 172 (ook een optionele koppelteken), en het karakter 182 (de paragraaf tekenkarakter) zijn allemaal verwijderd. ANSI-tekenset 160 (de vaste spatie), karakter 176 (een andere vaste spatie), en het karakter 183 (een kogel karakter) worden elk vervangen door spaties. Alle andere personages zijn ongewijzigd.

WordTips is uw bron voor kosteneffectieve Microsoft Word training. (Microsoft Word is de meest populaire tekstverwerker in de wereld.) Deze tip (1460) is van toepassing op Microsoft Word 97, 2000, 2002 en 2003. U kunt een versie van deze tip voor de ribbon-interface van het Woord (Word 2007 en later) hier: Schoonmaken tekst in een Macro.