如何在 Excel-VBA 的 IDE 中更改 Control-Y 行为

如何在 Excel-VBA 的 IDE 中更改 Control-Y 行为

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 完成的。

相关内容