Word 2013 Переместить точку вставки в конец слова

Есть ли простой прямой способ переместить точку вставки в конец слова в Word 2013? Под концом слова я подразумеваю, что последний символ слова находится слева от точки вставки, а завершающий пробел или знак препинания — справа, и ничего не выделено. Я убежден, что Word 2002 смог сделать это без макроса. Я создал следующий макрос, чтобы сделать это, но я убежден, что для этого должен быть встроенный способ, или, по крайней мере, макрос можно сделать проще.

Sub MoveCursorEndWord()
Selection.MoveRight Unit:=wdWord, Count:=1
Selection.MoveLeft Unit:=wdCharacter, Count:=1

If Selection.Text <> " " Then
Selection.MoveRight Unit:=wdCharacter, Count:=1
End If

End Sub

person user2609404    schedule 24.09.2017    source источник


Ответы (1)


Собственно, процедура, которую я придумал, не так уж сильно отличается от вашей.

Sub EndOfWord()

    Dim Rng As Range

    With Selection
        .Words(1).Select
        .Collapse wdCollapseEnd
        Do While .Start
            Set Rng = .Range
            Rng.MoveStart wdCharacter, -1
            If Asc(Rng.Text) = 32 Then
                .Move wdCharacter, -1
            Else
                Exit Do
            End If
        Loop
    End With
End Sub

Проблема в том, что Word настаивает на включении концевых пробелов в понятие «слово». Поскольку вы, кажется, следуете другому определению, возникает естественный конфликт.

person Variatus    schedule 25.09.2017