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

Если вы окажетесь в такой ситуации, этот макрос может вас заинтересовать. Он удаляет лишние знаки абзаца из документа. Когда он будет завершен, в вашем документе не должно быть даже двух знаков абзаца подряд.

Sub ReplacePara()

Selection.HomeKey Unit:=wdStory     Selection.Find.ClearFormatting     With Selection.Find         .Text = "^p^p"

.Replacement.Text = ""

.Forward = True         .Wrap = wdFindContinue         .Format = False         .MatchCase = False         .MatchWholeWord = False         .MatchWildcards = False         .MatchSoundsLike = False         .MatchAllWordForms = False     End With     Selection.Find.Execute     While Selection.Find.Found         Selection.MoveRight Unit:=wdCharacter, Count:=1         Selection.TypeBackspace         Selection.MoveLeft Unit:=wdCharacter, Count:=2         Selection.Find.Execute     Wend End Sub

Этот макрос состоит из двух частей. Первая часть, основанная на методе Selection.Find, использует встроенные в Word возможности поиска и замены для последовательного поиска всех экземпляров двух знаков абзаца. Макрос не заменяет последовательные знаки абзаца; он их просто находит.

Затем включается вторая часть макроса — с помощью свойства Selection.Find.Found — для удаления второго из двух последовательных знаков абзаца.

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

Обратите внимание, что Selection.Find.Found используется как «флаг» для цикла While.

Это свойство отражает состояние последней операции поиска. Если True, то поиск был успешным; если False, то ничего не найдено (и, следовательно, нечего менять).

_Примечание: _

Если вы хотите знать, как использовать макросы, описанные на этой странице (или на любой другой странице на сайтах WordTips), я подготовил специальную страницу, содержащую полезную информацию.

link: / wordribbon-WordTipsMacros [Щелкните здесь, чтобы открыть эту специальную страницу в новой вкладке браузера].

WordTips — ваш источник экономичного обучения работе с Microsoft Word.

(Microsoft Word — самая популярная программа для обработки текстов в мире.) Этот совет (998) относится к Microsoft Word 2007, 2010, 2013 и 2016.