Word VBA Макросы: Выделить текст в диапазоне страниц

Автор Maxx, 13 октября 2017, 13:08

Maxx

Добрый день!
Как можно макросом выделить текст, указав диапазон страниц, например с 5 по 10?

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

Вообще, не обязательно что-то выделять. Можно работать с текстом без выделения. Но в некоторых случаях, действительно, может потребоваться выделение.

Макрос
Sub макрос()
   
    Dim PageNumber1 As Long, PageNumber2 As Long
    Dim start_ As Long, end_ As Long
   
   
    '1. Здесь запишите в переменные номера страниц, которые нужно выделить.
    PageNumber1 = InputBox("Номер начальной страницы:")
    PageNumber2 = InputBox("Номер конечной страницы:")
   
    '2. Проверка, что указанная начальная страница существует.
    If ActiveDocument.ComputeStatistics(wdStatisticPages) < PageNumber1 Then
        MsgBox "В файле нет указанной начальной страницы.", vbExclamation
        Exit Sub
    End If
   
    '3. Проверка, что указанная конечная страница существует.
    If ActiveDocument.ComputeStatistics(wdStatisticPages) < PageNumber2 Then
        MsgBox "В файле нет указанной конечной страницы.", vbExclamation
        Exit Sub
    End If
   
    '4. Запись в переменную начала начальной страницы.
    start_ = ActiveDocument.GoTo(What:=wdGoToPage, Which:=wdGoToAbsolute, Count:=PageNumber1).Start
   
    '5. Запись в переменную конца конечной страницы.
        ' Нужно в переменную записать начало следующей страницы после указанной конечной.
        ' Если конечная страница - это последняя страница, то запишем в переменную конец файла.
    If ActiveDocument.ComputeStatistics(wdStatisticPages) = PageNumber2 Then
        end_ = ActiveDocument.Range.End
    Else
        end_ = ActiveDocument.GoTo(What:=wdGoToPage, Which:=wdGoToAbsolute, Count:=PageNumber2 + 1).Start
    End If
   
    '6. Выделение указанных страниц.
    ActiveDocument.Range(start_, end_).Select
   
End Sub
[свернуть]