Word VBA Макросы: Выделение слов без добавления пробелов.

Автор jtux270, 20 апреля 2020, 17:11

jtux270

Нужен макрос, который будет выделять любое количество слов вправо, начиная от курсора, установленного в начале первого слова.
Сначала юзер ставит текстовый курсор перед первым словом или внутрь первого слова, запускает макрос, это слово выделяется без правого пробела.
Затем юзер запускает макрос второй раз. При этом будет выделено слово от предыдущего запуска макроса. В этот раз в выделенный фрагмент включается следующее слово, которое находится справа, также без пробела.
И т.д.

В самом ворде (без макроса) эти действия делаются с помощью сочетания клавиш Ctrl+Shift+стрелка вправо, но в выделенный фрагмент включается правый пробел.

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

Это макрос считает словами и знаки препинания.

Макрос
Sub Макрос()
   
    '1. Если нет выделенного фрагмента, а есть мигающий курсор.
        ' В этом случае просто выделяем слово.
        ' Если это не учитывать, то при первом запуске будет
        ' выделяться два слова.
    If Selection.Type = wdSelectionIP Then
        Selection.Expand Unit:=wdWord
        Selection.MoveEndWhile Cset:=" ", Count:=wdBackward
        Exit Sub
    End If
   
    '2. Если есть выделенный фрагмент. Предполагается, что фрагмент
        ' выделен этим макросом, а не юзером и в выделенный фрагмент
        ' входят слова целиком.
       
    '1) Включаем в выделенный фрагмент правые пробелы.
    Selection.MoveEndWhile Cset:=" ", Count:=wdForward
    '2) Включаем в выделенный фрагмент правое слово.
    Selection.MoveRight Unit:=wdWord, Count:=1, Extend:=wdExtend
    '3) Убираем из выделенного фрагмента правые пробелы.
    Selection.MoveEndWhile Cset:=" ", Count:=wdBackward

End Sub
[свернуть]