БлогNot. Удаляем пустые абзацы из документа Word

Удаляем пустые абзацы из документа Word

Ужос, что за уродство Word? Понадобилось в большом объёме текста удалить лишние пустые абзацы, вставленные при копировании с Web-страницы после каждой строки. Но на попытку указать ^P (символ "Абзац") в поле "Найти" стандартного окна поиска и замены, Word XP/2003 выдал "^P нельзя использовать как специальный символ в поле Найти". Пришлось быстренько подключить макрос.

Чтобы его "повесить" у себя, зайдите в меню Word Сервис, Макрос, Редактор Visual Basic, вставьте в модуль NewMacros текст процедуры, закройте Visual Basic, в верхнем меню Word зайдите Сервис, Настройка, в категории Макросы найдите макрос delVoidParagraphs и перетащите его иконку из этого окна на нужную панель инструментов Word. Потом правая кнопка на добавленном значке, выбрать Основной стиль, затем так же правой кнопкой можно выбрать или нарисовать значок. Процедура описана для офиса XP/2003, в 2007/10 как-то так же, но неудобней, как и всё в нём.

У меня работает отлично, вот текст макроса:

Sub delVoidParagraphs()
'Удаление пустых абзацев в выделенном фрагменте
With Selection.Find
   .ClearFormatting
   .Replacement.ClearFormatting
   .Text = "^0013{2;}"
   .Replacement.Text = "^p"
   .MatchWildcards = True
   .Format = False
   .Forward = True
   If Selection.Type = wdSelectionIP Then
      .Wrap = wdFindContinue
   Else
      .Wrap = wdFindStop
   End If
   .Execute Replace:=wdReplaceAll
End With
Selection.Collapse direction:=wdCollapseStart
End Sub

Избавиться от лишних символов разрыва строки, которые тоже часто появляются при копировании текста из интернета в Word, ещё проще: окно "Найти и заменить", в поле "Найти" указываем специальный символ ^l (крышечка и буква l - "эль" латинская малая), поле "Заменить на" оставляем пустым и нажимаем кнопку "Заменить всё".

31.01.2011, 16:09 [21746 просмотров]


теги: textprocessing word макрос vba

показать комментарии (1)