Excel VBA 的 IDE 将 Control-y 注册为“剪切此行代码”。
相比之下,重做是通过 Alt-e、R 完成的。
有什么方法可以改变这种行为并使 Control-y 成为更常见的重做?
(有关默认行为的更多信息,请参见以下链接:http://www.pcreview.co.uk/threads/ctrl-y-in-vba-ide.2198613/)
答案1
回答以下问题:
我想知道是否可以直接对 VBE 进行编程来解决这个问题?
不幸的是,答案是否定的。改变行为的唯一方法是使用 插件 微软将其功能总结为:
- 一个启动模块,用于捕获加载项的打开和关闭。
- 一些代码用于在打开时将菜单项添加到命令栏,并在关闭时将其删除
- 对于 VBE,一个类模块用于处理菜单项“单击”事件
- 一些执行菜单操作的代码。
具体来说,拦截热键不在列表中。
Eliyahu 的答案仍然是正确的,并且 AutoHotKey(或 AutoIt)仍然是唯一的解决方案。
答案2
这自动热键我写的脚本似乎有效:
#IfWinActive ahk_class wndclass_desked_gsk
^y::
Send {escape}
Send !e;
Send r
Send {escape}
Send {escape}
return
#IfWinActive
答案3
对于那些不想看到使用 AutoHotkey 的菜单闪烁的人。您可以单击重做按钮。(是的,我知道,坐标。但这就是微软的做法。此外,如果您没有重新排列控件,以下数字应该可以正常工作。哦,对于那些不熟悉 AutoHotkey 的人来说,请放心,它不会移动您的鼠标。)
#IfWinActive ahk_class wndclass_desked_gsk
^y::
ControlClick, x236 y67, A
return
#IfWinActive
答案4
Excel VBA 的 IDE 将 Control-y 注册为“剪切此行代码”。
相比之下,重做是通过 Alt-e、R 完成的。