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

Автор Game, 08 августа 2019, 12:35

Game

В документе word есть такой текст:

Сегодня отличная погода.
Привет Билл, как дела?
Хорошо.

Необходимо найти текст "Привет Билл", поставить курсор после этой фразы и все остальное до конца абзаца ", как дела?" скопировать в переменную.

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

Макрос
Sub Макрос()

    Dim rng As Range
    Dim var

   
    '1. Ищем в основном тексте (т.е. не в колонтитулах и ещё где-нибудь) файла текст.
    With ActiveDocument.Range.Find
   
        '1) Искомый текст.
        .Text = "Привет Билл"
       
        '2) Если не найдено, то выходим из макроса.
        If .Execute = False Then
            Exit Sub
        End If
       
        '3) Присваиваем имя "rng" найденному фрагменту.
        Set rng = .Parent.Duplicate
       
    End With
   
    '2. Смещаемся вправо от найденного.
        ' По сути устанавливаем точку вставки справа от найденного фрагмента.
        ' Точки вставки - это своего рода мигающий курсор.
    rng.Collapse Direction:=wdCollapseEnd
   
    '3. Включаем в "rng" фрагмент от текущей позиции до конца абзаца.
    rng.MoveEnd Unit:=wdParagraph
   
    '4. Убираем с конца знак абзаца.
    rng.MoveEnd Unit:=wdCharacter, Count:=-1
   
    '5. Записываем фрагмент в переменную.
    var = rng.Text
   
End Sub
[свернуть]