space

Все, кто часто работает с текстом обязательно встречались с неправильно отформатированными документами, которые имели те или иные недостатки. Сегодня поговорим о лишних пробелах. Очень часто я встречаюсь именно с такой проблемой. Вручную заменить один-два таких двойных или тройных пробела не вызывает никаких трудностей. Но когда речь идет о десятках или сотнях это уже невыносимая проблема. Можно быстро исправить данную ситуацию одним из способов.

Пример будет показан на версии Microsoft Office Word 2016.

Способ 1. Без использования макросов.

Воспользуемся простым поиском и заменой, то есть, инструментами редактора Word.

На главной странице находим кнопку «Заменить» и нажимаем на нее.

space

Напротив «Найти» вводим в поле два пробела.

Напротив «Заменить» вводим в поле один пробел.

После этого нажимаем на кнопку «Заменить все».

space

Если в тексте встречается три и большее количество пробелов подряд, то процедуру поиска и замены нужно повторить такое количество раз, чтобы сообщение о количестве замен стало показывать ноль: «Готово. Число выполненных замен: 0».

space

Это довольно простое действие для замены лишних пробелов, но в случае если пробел стоит перед запятой, точкой или другим знаком препинания нужно выполнить другой способ замены.

Для этого (на примере запятой):

На главной странице находим кнопку «Заменить» и нажимаем на нее.

Напротив «Найти» вводим в поле пробел и тогда кому.

Напротив «Заменить» вводим в поле только кому.

После этого нажимаем на кнопку «Заменить все».

space

Если в тексте встречается большее количество пробелов подряд, то процедуру поиска и замены нужно повторить такое количество раз, чтобы сообщение о количестве замен стало показывать ноль: «Готово. Число выполненных замен: 0». С другими знаками препинания все выполняется аналогично.

space

Способ 2. Использование макросов.

Для простого удаления лишних пробелов между словами и знаками препинания, а также перед знаками препинания, нужно использовать два макроса.

Берем два кода, что ниже и копируем в буфер обмена:

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
 .MatchWildcards = True
End With
Selection.Find.Execute Replace:=wdReplaceAll
Selection.MoveRight Unit:=wdCharacter, Count:=1
End Sub
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

Открываем «Макросы», перейдя на вкладкку «Вид», и нажав на соответствующую кнопку. Если у вас есть установленные или записанные макросы, то можно выделить любой из них и нажать на кнопку «Изменить». Если макросов нет, то в поле «Имя» пишем любое имя без пробелов. Также имя макроса не может состоять только из одних цифр. Дали для макроса имя, теперь можно нажать на кнопку «Создать».

space

space

Примечание. Для быстрого запуска визуального редактора Microsoft Visual Basic (именно в нем происходит редактирование макросов) нужно нажать сочетание клавиш Alt+F11.

Откроется окно визуального редактора для добавления макроса. Просто после горизонтальной линии вставляем два наших кода, которые перед этим скопировали. Если вы создавали имя макроса, то можете удалить его и заменить нашими готовыми макросами (чтобы не было пустых макросов при выборе). Во всяком случае код нужно вставить после End Sub.

space

Сохраняем наши изменения.

space

Нажимаем опять на кнопку «Макросы», выбираем из списка только что добавленные и нажимаем «Выполнить».

space

Для удаления пробелов используем макрос с именем (его можно изменить) DeleteSpace, а для пробелов перед знаками препинания DelSpacePunktMark.

После данных действий ваш текст будет иметь нужный вид.