Word VBA Макросы: Как убрать с конца выделенной области пустые абзацы?

Автор oleg4226, 09 октября 2019, 15:09

oleg4226

1. Юзер выделил текст на странице.
2. Макрос должен проверить, есть ли на конце выделенной области пустые абзацы.
3. Если пустые абзацы присутствуют, то макрос должен уменьшить выделенную область: выделение на тексте остаётся, а с абзацев оно снимается.

Как это сделать?

И ещё хотел бы узнать, как в пункте 3 удалить пустые абзацы, оставив тест выделенным?

Администратор

Убрать с конца выделенной области пустые абзацы можно так:

Sub Макрос()
    ' Убираем с конца выделенной области пустые абзацы.
    Selection.MoveEndWhile Cset:=Chr(13), Count:=wdBackward
    ' Включаем в выделенную область символ абзаца.
    Selection.MoveEnd Unit:=wdCharacter, Count:=1
End Sub


Если надо удалить, то так:

Sub Макрос()

    ' Делаем цикл, пока на конце выделенной области есть пустой абзац.
    Do While Selection.Paragraphs.Last.Range.Characters.Count = 1
        ' Удаление пустого абзаца с конца выделенной области.
        Selection.Paragraphs.Last.Range.Delete
        ' Если выделенная область стала в виде мигающего курсора, то значит удалёно всё, что было выделено.
        If Selection.Type = wdSelectionIP Then
            Exit Do
        End If
    Loop
   
End Sub