Вы не вошли. Пожалуйста, войдите или зарегистрируйтесь.
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться
Сообщений [ 5 ]
- kryptic-mind
- рядовой
- Неактивен
- Зарегистрирован: 21.11.2012
- Сообщений: 5
Тема: Как удалить пустые абзацы в начале документа?
ситуация следующая:
есть документы, в которых вначале существуют рамки с текстом
у меня есть такой макрос
sub test()
dim frm as frame
for each frm in activedocument.frames
frm.range.select
frm.range.delete
selection.delete
next frm
в этом же макросе дальше идет команда на выполнение нужного мне форматирования и потом
end sub
суть в том, что после удаления всех рамок остаются несколько пустых абзацев перед началом текста, мне нужно чтобы мне нужно чтобы в макросе было удаление этих пустых абзацев, а я не знаю как! нужно еще чтобы он удалял пустые абзацы только перед текстом, так как в самом тексте между некоторыми абзацами существуют пустые абзацы: например, заголовок документа разделен между основным текстом двумя абзацами!!! заранее спасибо!
- kryptic-mind
- рядовой
- Неактивен
- Зарегистрирован: 21.11.2012
- Сообщений: 5
Re: Как удалить пустые абзацы в начале документа?
макрос мне не подходит
Sub delPar()
Dim sPar As String
Dim par As Paragraph
Dim i As Integer
i = 0
For Each par In ActiveDocument.Paragraphs
If Right(par, 2) = Chr(46) & Chr(13) Then
i = i + 1
Else
If Right(par, 1) = Chr(13) Then
par.Range.Text = Replace(par.Range.Text, Chr(13), " ")
End If
End If
Next par
End Sub
- aap77
- генерал-полковник
- Неактивен
- Зарегистрирован: 12.09.2011
- Сообщений: 925
- Поблагодарили: 243
Re: Как удалить пустые абзацы в начале документа?
1. Вообще-то в грамотно составленном документе не должно быть пустых абзацев как таковых.
2. Заголовки определяются отдельными стилями, в свойствах которых определяются отступы абзаца сверху и снизу в соотношении: 2/3 сверху и 1/3 снизу по отношению к размеру шрифта заголовка. Также заголовок должен отличаться от основного текста как форматом шрифта, так и общим форматом абзаца, что сделает Ваш документ удобочитаемым для предназначенной ему аудитории. Вообще выделение какого-то абзаца пустыми абзацами не только не правильно, но и несет лишнюю информационную нагрузку.
3. Сам макрос для удаления пустых абзацев прост до состояния амебы, Вы его и сами можете сделать без труда используя средство записи макроса Word. И правильное задание параметров Поиска и Замены с использованием Подстановочных знаков. Вот этот макрос созданный самим Word:
Sub Удалить_пустые_абзацы()
Selection.Find.ClearFormatting
Selection.Find.Replacement.ClearFormatting
With Selection.Find
.Text = "[^0013]{2;}"
.Replacement.Text = "^p"
.Forward = True
.Wrap = wdFindContinue
.MatchWildcards = True
End With
Selection.Find.Execute Replace:=wdReplaceAll
End Sub
- kryptic-mind
- рядовой
- Неактивен
- Зарегистрирован: 21.11.2012
- Сообщений: 5
Re: Как удалить пустые абзацы в начале документа?
aap77 пишет:1. Вообще-то в грамотно составленном документе не должно быть пустых абзацев как таковых.
2. Заголовки определяются отдельными стилями, в свойствах которых определяются отступы абзаца сверху и снизу в соотношении: 2/3 сверху и 1/3 снизу по отношению к размеру шрифта заголовка. Также заголовок должен отличаться от основного текста как форматом шрифта, так и общим форматом абзаца, что сделает Ваш документ удобочитаемым для предназначенной ему аудитории. Вообще выделение какого-то абзаца пустыми абзацами не только не правильно, но и несет лишнюю информационную нагрузку.
3. Сам макрос для удаления пустых абзацев прост до состояния амебы, Вы его и сами можете сделать без труда используя средство записи макроса Word. И правильное задание параметров Поиска и Замены с использованием Подстановочных знаков. Вот этот макрос созданный самим Word:
Sub Удалить_пустые_абзацы()
Selection.Find.ClearFormatting
Selection.Find.Replacement.ClearFormatting
With Selection.Find
.Text = "[^0013]{2;}"
.Replacement.Text = "^p"
.Forward = True
.Wrap = wdFindContinue
.MatchWildcards = True
End With
Selection.Find.Execute Replace:=wdReplaceAll
End Sub
как средствами ворда найти заменить я знаю, но это не подходит, выполнение этого макроса удаляет все пустые абзацы + один (перед самим текстом удаляет), а как я уже сказал выше, мне нужно, чтобы он удалял все абзацы только непосредственно перед началом текста, так как в тексте документа есть заголовок, который разделяется двумя абзацами!!! мне нужно чтобы макрос как только начинался текст останавливал выполнение! как-то так!
- viter.alex
- Модератор
- Неактивен
- Откуда: Харьков, Украина
- Зарегистрирован: 21.12.2009
- Сообщений: 884
- Поблагодарили: 140
Re: Как удалить пустые абзацы в начале документа?
Если нужно удалить пустые абзацы, следующие подряд, в самом начале документа, тогда попробуйте такой макрос.
' Перемещение в начало документа
Selection.HomeKey wdStory
' Удаление абзацев, состоящих из одного символа
While Selection.Paragraphs.First.Range.Characters.Count = 1
Selection.Paragraphs.First.Range.Delete
Wend
Лучше день потерять — потом за пять минут долететь!
Сообщений [ 5 ]
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться
Как удалить пустые абзацы в начале документа?
Для пользователей, работающих с большим объемом текстов в редакторе Microsoft Word, остро стоит проблема оптимизации тех либо иных, механически повторяющихся действий. На портале о Microsoft Office Word вы узнаете про: как убрать значки отображения скрытых символов форматирования.
Программа дает возможность написания миникоманд (макросов), шаблонов под конкретную задачу, но не все умеют пользоваться этими функциями. На портале о Microsoft Office Word вы узнаете про: office 2010 заголовок таблицы.
На форуме сайта Ворд Эксперт как раз можно буквально с азов научиться работать с макросами и шаблонами, найти подсказки по наилучшим настройкам для различных операций и обсудить особенности ранних и последних версий Ворда. Наш сайт о Microsoft Office Word даст ответ про: в каком формате сохранять вордовский документ.
Кроме того, на форуме участникам предлагается воспользоваться готовым решением или оставить заявку в соответствующей рубрике. На портале о Microsoft Office Word вы узнаете про: в 3 ворде знак дробь.