Очистка текста в макросе (Microsoft Word)
Было много макросов, которые я написал с явной целью «очистить» текст, прежде чем делать с ним что-то еще. Например, вставив его в новый документ или сохранив в текстовом файле.
Часто этот процесс утомителен и включает в себя изучение каждого символа в текстовой строке и последующее принятие решения о том, что с ним делать, если этот символ не входит в диапазон допустимых символов.
VBA включает интересный метод, который можно использовать для очистки текста. Это вполне уместно называется методом CleanString. Вы используете его, как показано здесь:
sCleanedUp = Application.CleanString(Selection.Text)
Этот экземпляр устанавливает строку sCleanedUp равной «очищенной» версии выбранного текста. Что именно делает метод CleanString? Он удаляет непечатаемые символы в диапазоне ANSI от 1 до 29, за исключением 7, 9, 10 и 13. В случае символа 7 ANSI он удаляется, если ему не предшествует символ 13, и в этом случае он заменен табуляцией (ANSI 9). В случае символа 10 ANSI он заменяется символом 13, если ему не предшествует символ 13, и в этом случае он удаляется. Персонажи 9 и 13 не изменены.
На ряд других символов вне диапазона от 1 до 29 также влияет метод CleanString. Символ 31 ANSI (необязательный дефис), символ 172 (также необязательный дефис) и символ 182 (символ знака абзаца) удаляются. Каждый символ ANSI 160 (неразрывный пробел), символ 176 (другой неразрывный пробел) и символ 183 (символ маркера) заменяются пробелами. Все остальные персонажи без изменений.
_Примечание: _
Если вы хотите знать, как использовать макросы, описанные на этой странице (или на любой другой странице на сайтах WordTips), я подготовил специальную страницу, содержащую полезную информацию.
link: / wordribbon-WordTipsMacros [Щелкните здесь, чтобы открыть эту специальную страницу в новой вкладке браузера]
.
WordTips — ваш источник экономичного обучения работе с Microsoft Word.
(Microsoft Word — самая популярная программа для обработки текстов в мире.) Этот совет (1460) применим к Microsoft Word 97, 2000, 2002 и 2003. Вы можете найти версию этого совета для ленточного интерфейса Word (Word 2007 и позже) здесь:
link: / wordribbon-Cleaning_Up_Text_in_a_Macro [Очистка текста в макросе]
.