|
|
|||||||||||||||||||||||||||||
|
Удаление лишних пробелов в WordИсточник: computerra Антон Кокин
Если вы в силу специфики своей работы часто получаете документы Word, подготовленные кем-то другим, то наверняка встречали в текстах помимо орфографических ошибок, проблемы иного рода - лишние пробелы между словами или перед знаками препинания. Удалять их вручную утомительно и требует много времени. Но можно значительно облегчить себе жизнь, если создать два макроса, которые самостоятельно и в мгновение ока избавят документ от этой напасти. Макросы не оригинальны и созданы по мотивам советов авторов книги "Microsoft Word: комфортная работа с помощью макросов". Для начала откройте какой-нибудь документ, который вы предполагаете проверить, или же сами создайте такой документ, намеренно добавив в текст лишние пробелы между словами и перед знаками препинания. Первым мы создадим макрос, который будет удалять лишние пробелы между словами. 1. Зайдите в меню "Сервис" (Tools), выберите команду "Макрос" (Macro) и из открывшегося списка выберите команду "Начать запись" (Record New Macro). Появится диалоговое окно, в котором следует назначить макросу имя (пусть будет DeleteSpace) и щелкнуть на кнопке с изображением молотка для назначения макросу кнопки. Если вы не хотите выводить кнопку макроса на панель инструментов, а желаете пользоваться сочетаниями клавиш, то можете кликнуть на кнопке с изображением клавиатуры:
2. Откроется диалоговое окно, в котором вам следует перейти на среднюю вкладку "Команды" и из правого поля перетащить на панель инструментов ваш новый макрос с названием Normal.NewMacros.DeleteSpace. Кстати, позже или прямо сейчас вы можете изменить стиль кнопки, отредактировав ее текст или назначив для кнопки какое-нибудь подходящее изображение. 3. Закройте окно. После этого на рабочем окне документа появится панелька с управляющими кнопками для записи макроса (см. скриншот).
4. Теперь будьте аккуратны, так как макрос уже пишется. Нажмите сочетание клавиш "CTRL+H". Откроется диалоговое окно "Найти и Заменить". Для доступа к параметрам поиска нажмите кнопку "Больше", если диалоговое окно представлено в краткой форме. 5. Удалите всё, что находится в поле "Найти" и в поле "Заменить". Нажмите кнопку "Снять форматирование", если эта кнопка активна. Снимите все галочки с режимов в группе "Параметры поиска", но оставьте или поставьте галочку "Подстановочные знаки". Выберите в открывающемся списке направление "Везде". 6. Выделите весь текст документа, нажав сочетание клавиш "CTRL+A". 7. Введите в поле "Найти" пробел, а потом введите следующее выражение: {2;} Здесь в фигурных скобках введена цифра 2, а сразу за ней точка с запятой. Это выражение означает, что будет произведен поиск двух и более расположенных подряд вхождений того знака, который стоит перед открывающейся фигурной скобкой. В нашем случае будет произведен поиск двух и более пробелов. 8. Перейдите в поле "Заменить на" и введите один пробел. 9. Нажмите кнопку "Заменить все". Таким образом, если будет найдено несколько подряд стоящих пробелов, то все они заменятся на один пробел. 10. После окончания поиска и замены закройте диалоговое окно "Найти и заменить". Снимите выделение текста, нажав на клавиатуре клавишу стрелки. 11. Нажмите на кнопку с квадратиком в управляющей панели, чтобы остановить запись. Для тех читателей, которые знают, как работать со встроенным в Microsoft Word редактором Visual Basic, я просто приведу готовый код макроса: Sub DeleteSpace()
Selection.WholeStory Selection.Find.ClearFormatting Selection.Find.Replacement.ClearFormatting With Selection.Find .Text = " {2;}" .Replacement.Text = " " .Forward = True .Wrap = wdFindAsk .Format = False .MatchCase = False .MatchWholeWord = False .MatchAllWordForms = False .MatchSoundsLike = False .MatchWildcards = True End With Selection.Find.Execute Replace:=wdReplaceAll Selection.MoveRight Unit:=wdCharacter, Count:=1 Второй созданный нами макрос будет находить и удалять все лишние пробелы перед знаками препинания. Повторите шаги с 1 по 6 включительно. Назовите макрос как DeleteSpacePunctuationMark. Дальнейшие шаги: 1. Введите в поле "Найти" сначала пробел, а потом введите следующее выражение: {1;}([.,:;\!\?]) Это выражение буквально означает, что будет произведен поиск одного и более расположенных подряд пробелов, стоящих перед любым перечисленным в квадратных скобках знаком препинания. 2. Перейдите в поле "Заменить на" и введите \1 (здесь единица означает порядковый номер выражения, заключенного в круглые скобки). 3. Нажмите кнопку "Заменить все". 4. После окончания поиска и замены закройте диалоговое окно "Найти и заменить". Снимите выделение текста, нажав на клавиатуре на клавишу стрелки. 5. Нажмите на кнопку с квадратиком в управляющей панели, чтобы остановить запись. Получившийся код для вставки в редактор VisualBasic: Sub DelSpacePunktMark()
Selection.WholeStory Selection.Find.ClearFormatting Selection.Find.Replacement.ClearFormatting With Selection.Find .Text = " {1;}([.,:;\!\?])" .Replacement.Text = "\1" .Forward = True .Wrap = wdFindContinue .Format = False .MatchCase = False .MatchWholeWord = False .MatchAllWordForms = False .MatchSoundsLike = False .MatchWildcards = True End With Selection.Find.Execute Replace:=wdReplaceAll Selection.MoveLeft Unit:=wdCharacter, Count:=1 End Sub Так вы избавитесь от рутины ручных действий, которые, увы, неизбежны при редактировании любых документов Word, особенно при поиске лишних пробелов в тексте. Ссылки по теме
|
|