Создание подсветки для чтения в Word - PullRequest
0 голосов
/ 24 октября 2019

Я переводчик, и я хотел попробовать это вместо метода старой школы с пластиковой линейкой. Мне удалось поместить макрос из другой темы на этом форуме в Word (я ничего не знаю о макросах, Google помогает мне)

Я нашел похожую тему на этом форуме " выделять текущую строку документа Word, когдадвигаться вверх или вниз"но я не могу задать вопрос в этой теме. В этой теме я попробовал Sub SelectLineUp () и Public Sub KeyUpOrDown () Я тоже добавлю их коды. Приношу свои извинения за код, но он несколько искажен, как в предварительном просмотре, я не знаю почему ...

Sub SelectLineUp()
    `enter code here`Application.ScreenUpdating = False
    ActiveDocument.content.HighlightColorIndex = wdNoHighlight

    Selection.MoveEnd wdLine, -1
    Selection.EndKey Unit:=wdLine, Extend:=wdExtend

    Selection.Range.HighlightColorIndex = wdYellow

    'Unselect the line
    Application.Selection.StartOf
    Application.ScreenUpdating = True
End Sub

Sub SelectLineDown()
    Application.ScreenUpdating = False

    ActiveDocument.content.HighlightColorIndex = wdNoHighlight

    Selection.MoveStart wdLine, 1
    Selection.HomeKey Unit:=wdLine
    Selection.EndKey Unit:=wdLine, Extend:=wdExtend

    Selection.Range.HighlightColorIndex = wdYellow

    'Unselect the line
    Application.Selection.Collapse wdCollapseStart

    Application.ScreenUpdating = True
End Sub


Option Explicit

Private Declare Function GetKeyState Lib "user32.dll" (ByVal nKey As Long) As Integer

Public Sub KeyUpOrDown()
    Dim keyUp As Boolean
    keyUp = CBool(GetKeyState(vbKeyUp) And &H80) ' Was "keyup" pressed

    If (keyUp) Then
        Selection.MoveUp Unit:=wdLine
        Call HighlightLine
    Else
        Selection.MoveDown Unit:=wdLine
        Call HighlightLine
    End If

End Sub

Private Sub HighlightLine()
    Application.ScreenUpdating = False
    Dim currPosition As Range
    Set currPosition = Selection.Range

    ActiveDocument.Content.HighlightColorIndex = wdNoHighlight
    Selection.Expand Unit:=wdLine
    Selection.Range.HighlightColorIndex = wdYellow

    currPosition.Select

End Sub

С обоими этими кодами у меня один и тот же результат. Когда я запускаю макрос, он подсвечивает предложение, в котором находится мой курсор, но клавиши вверх и вниз не работают. Мне бы хотелось, чтобы выделенный цвет двигался вверх и вниз по предложениям с помощью клавиш вверх и вниз.

...