Как и говорил в посте Как найти и заменить текст в Ms Office Word, Open Office Writer, Libre Office, сегодня попробуем поработать с большим количеством информации. Будем оставлять самое главное и удалять лишнее в очень большом тексте.
Текст, который мы будем «чистить»:
Итак, удаляем строки, которые выделены жирным и оставляем только нужный текст.
Обратите внимание, что длина удаляемого текста отличается. Для выделения строки независимо от количества символов нажимаем Ctrl+Shift+стрелка вниз. Под спойлером в конце поста вы увидите все команды выделения текста с помощью клавиатуры. А сейчас переводим курсор в начало текста, переходим в меню «Макросы» и включаем запись макроса.
Когда будете задавать имя макросу, не оставляйте пробелы – Word выдаст ошибку. Назначаем его для кнопки или клавиатуры. Я больше люблю работать с клавиатурой и выбрал поэтому клавиши.
Настраиваем макрос. Тут просто нажимаем любое сочетание клавиш. Если оно уже присвоено, то об этом появится информация.
Я присвоил макросу клавиатурную комбинацию Ctrl+G. Эта комбинация не используется в стандартном режиме редактирования и является свободной. Не переписывайте комбинации, которые часто используете.
Ctrl+X | вырезать выделенный контент (текст, графика, вложения) |
Ctrl+C | скопировать выделенный контент |
Ctrl+A | выделить всё в документе |
Ctrl+Z | отменить последнее действие |
Ctrl+Y | повторить последнее действие (обратно сочетанию Ctrl+Z) |
Начнём записывать макрос. На самом деле тут ничего сложного нет, просто делайте так, как редактируете обычно текст. Используйте чаще клавиши «Home» и «End», потому что они работают быстрее и не привязаны к количеству символов.
Таким образом, при записи вам нужно последовательно нажать после включения записи макроса следующие клавиши и комбинации клавиш. Стрелкой «вниз» сместить курсор на одну строку ниже, нажатием «Ctrl+Shift+стрелка вниз» выделить строку, клавишей «Delete» удалить строку. Полная последовательность представлена ниже в таблице.
Включили запись макроса | ||
1 | Стрелка вниз | пропускаем строку и переходим к следующей |
2 | Ctrl+Shift+стрелка вниз | выделяем 2 строку |
3 | Del | удаляем строку |
4 | Ctrl+Shift+стрелка вниз | выделяем 3 строку |
5 | Del | удаляем строку |
6 | Ctrl+Shift+стрелка вниз | выделяем 4 строку |
7 | Del | удаляем строку |
8 | Backspace | переносим строку 5 к строке 1 |
9 | Home | переводим курсор в начало строки |
10 | Стрелка вниз | Переходим в начало следующего повторяющегося блока |
Выключаем запись макроса |
Макрос записан, запись остановили. Кнопка остановки записи будет в том же месте, что и кнопка записи макроса.
Замечательно! Нажимаем Ctrl+G и лишний текст просто пропадает. Быстро, легко и удобно. А что делать, если записей… 1000 или больше?
Дадим команду обработать все вложения. А сколько этих вложений? Один из способов – найдите постоянное выражение через поиск. Я нажал Ctrl+F и ввёл в строку поиска выражение «Читайте блог Lassimarket.ru». Количество вхождений Word мне не показал, но я попросил его заменить это выражение на «*». Появилось окно с надписью «Произведено замен 24».
Запомнили число и нажали Ctrl+Z – отменили замену текста на звёздочку. Теперь я знаю, что в примере у меня 24 вхождения. Это я должен нажать 24 раза сочетание Ctrl+G для того, чтобы отформатировать текст. Будем упрощать это дело.
Нажимаем Alt+F11. Мы попали в редактор макросов. Это большая и сложная тема, тут самый настоящий язык программирования, но у нас всё будет просто, я вас уверяю.
Вписываем как на картинке две строки в начало и слово в конце.
Dim i As Integer
For i = 0 To 23
и
Next
Что это значит? Мы обозначили i — числовой переменной и присвоили значения от 0 до 23, после окончания первого цикла замены число i увеличится на 1 и макрос будет снова повторяться (Next) до тех пор, пока не достигнет конца (23).
То есть эти строки дают команду после нажатия Ctrl+G повторить макрос «Удаляем3строки» 23 раза. Вот текст моего примера макроса.
Sub Удаляем3строки()
‘
‘ Удаляем3строки Макрос
‘
‘
Dim i As Integer
For i = 0 To 23
Selection.MoveDown Unit:=wdLine, Count:=1
Selection.MoveDown Unit:=wdParagraph, Count:=1, Extend:=wdExtend
Selection.Delete Unit:=wdCharacter, Count:=1
Selection.MoveDown Unit:=wdParagraph, Count:=1, Extend:=wdExtend
Selection.Delete Unit:=wdCharacter, Count:=1
Selection.MoveDown Unit:=wdParagraph, Count:=1, Extend:=wdExtend
Selection.Delete Unit:=wdCharacter, Count:=1
Selection.TypeBackspace
Selection.HomeKey Unit:=wdLine
Selection.MoveDown Unit:=wdLine, Count:=1
Next
End Sub
Сохраняем макрос и закрываем редактор.
Обратите внимание, что после того, как мы перенесём пятую строку к первой, текст может вылезать на другую строку и макрос будет дальше работать неправильно.
Тогда можно временно заменить регулярное выражение на любой символ или уменьшить шрифт на этапе работы макроса и тому подобное.
Вернулись в редактор, нажали Ctrl+G, и текст мигом принял новый вид. Всё получилось. За пару минут обработали довольно большой текст в автоматическом режиме.
В следующих постах расскажу ещё о простых, но важных навыках работы с офисными приложениями.
блин а если в таблице есть неактивные ячейки которые не выделяются курсор на которые не ставиться ак их убрать.
Простите за задержку, но всю таблицу можно превратить в текст со * как разграничитель ячеек. Там, где будут **, *** их можно заменять, например.
Спасибо за то, что так подробно объяснили!
Спасибо! Не знал как повторять выполнение макроса, тупо приходилось на кнопки жать по 100 раз