Word 2007 Макрос: удалить все пробелы в начале документа

Автор lapin9126, 30 августа 2016, 12:44

lapin9126

Здравствуйте. Помогите пожалуйста с макросом по удалению всех пробелов в начале документа.

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

Удаление пробелов в начале документа:

Sub Макрос()
   
    '1. Отключение монитора. Может это ускорит работу макроса.
    Application.ScreenUpdating = False
   
    '2. Делать цикл, пока первый символ - это пробел.
    Do While ActiveDocument.Paragraphs(1).Range.Characters.First = " "
        ' Удаление первого символа.
        ActiveDocument.Paragraphs(1).Range.Characters.First.Delete
    Loop

    '3. Включение монитора.
    Application.ScreenUpdating = True
   
End Sub

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

Вариант без цикла, наверное, более быстрый, чем в сообщении выше:

Sub Макрос2()

    Dim rng As Range
   
    ' Проверка, что первый символ - это пробел.
    If ActiveDocument.Paragraphs(1).Range.Characters.First = " " Then
        ' Vba-именование фрагмента файла, где находится пробел.
        Set rng = ActiveDocument.Paragraphs(1).Range.Characters.First.Duplicate
        ' Движение конца фрагмента, пока встречается пробел.
        rng.MoveEndWhile Cset:=" "
        ' Удаление фрагмента.
        rng.Delete
    End If

End Sub

P.S. Для работы с одним абзацем не важен способ - и так будет быстро, но если надо много обработать, то можно попробовать выбрать, какой вариант быстрее.

lapin9126


Посетитель 24.04.2024

День добрый.
Прошу помощи в решении задачи: требуется удалить "лишние" пробелы в тексте, в частности в конце документа/абзаца.
Данная конструкция позволяет это сделать:
            .Text = " {1;}^13"
            .Replacement.Text = "^13"
            .MatchWildcards = True
            .Execute Replace:=wdReplaceAll
однако в абзаце перед таблицей и в самой таблице в ячейках после текста остаются конечные пробелы.

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

Написал вам письмо на почту. Написал именно на почту, а не на форум.