如何向下滚动 docx 而不移动光标的位置

如何向下滚动 docx 而不移动光标的位置

有没有办法在 Word(2013)中使用快捷键来向下滚动页面,同时保持光标在窗口中的同一位置?

这样可以避免转到最后一行并向下滚动。

答案1

您可以创建一个宏来上下滚动而不移动光标,然后为这些宏分配键盘快捷键。

Sub ScrollUp()
ActiveWindow.SmallScroll Up:=1
End Sub

Sub ScrollDown()
ActiveWindow.SmallScroll Down:=1
End Sub

然后为这些宏分配您选择的键盘快捷键。(在 Word 2016 中,转到文件 > 选项 > 自定义功能区 > 键盘快捷键:自定义 > 类别:宏)

在宏中,如果您愿意,可以将滚动线的数量更改为不同的数字。

来源:http://www.thefreewindows.com/2287/scroll-a-microsoft-word-document-without-moving-the-cursor/

答案2

只需添加到 stevenkkim 的解决方案,对于 Word 2016 您需要:

Sub ScrollUp()
  ActiveDocument.ActiveWindow.SmallScroll Up:=1
End Sub
    
Sub ScrollDown()
  ActiveDocument.ActiveWindow.SmallScroll Down:=1
End Sub
    
Sub ScrollLeft()
  ActiveDocument.ActiveWindow.SmallScroll ToLeft:=1
End Sub  

Sub ScrollRight()
  ActiveDocument.ActiveWindow.SmallScroll ToRight:=1
End Sub

然后将宏分配给您喜欢的键盘快捷键(我使用 Alt + UpArrow 等)。

答案3

如果用例只是阅读别人创建的文档而不做任何编辑,我建议一种解决方法:导出/打印为 PDF。在 pdf 阅读器应用程序中,在阅读环境中导航更加顺畅。

答案4

这是稍微不美观的脚本。它将文本滚动几行(我的情况是 39 行),然后按“Space”和“Backspace”。您将看到当前行作为文档可见空间中的最顶部行。只是不要在选择文本时这样做,因为 Space/Backspace 会破坏它。

Sub ScrollTextAndEmulateSpaceBackspace()
    Dim originalLine As Long
    Dim i As Long
    
    ' Remember current line position
    originalLine = Selection.Information(wdFirstCharacterLineNumber)
    
    ' Store the current selection
    Dim selStart As Long
    Dim selEnd As Long
    selStart = Selection.Start
    selEnd = Selection.End
    
    ' Scroll down by 39 lines without changing cursor position
    For i = 1 To 39
        Selection.MoveDown Unit:=wdLine, Count:=1, Extend:=wdMove
    Next i
    
    ' Emulate pressing "Space" button
    SendKeys " ", True
    
    ' Emulate pressing "Backspace" button
    SendKeys "{BACKSPACE}", True
    
    ' Restore original selection
    Selection.SetRange Start:=selStart, End:=selEnd
    
    ' Restore original line position
    Selection.MoveUp Unit:=wdLine, Count:=originalLine - Selection.Information(wdFirstCharacterLineNumber), Extend:=wdMove
End Sub

相关内容