所以我想在我们的文档级 Excel VSTO 插件中捕获一些键盘命令。除了使用 VBA 并让我们的插件与 VBA 对话之外,我似乎找不到其他方法来做到这一点。任何帮助/示例将不胜感激。
我使用的是 Excel 2007。
-
一种方法涉及使用第三方解决方案插件-Express。他们的产品包括将键盘快捷键作为属性添加到功能区菜单命令的功能。
-
另一种方法是利用低级键盘钩子,通过一些Win32 API通常被称为窗口子类化。这是关于如何执行此操作的代码示例的精彩解释。请注意,要使此代码在 VSTO 中“工作”,您需要做的唯一“额外”事情就是移动SetHook()
方法到Startup
事件,以及 Shutdown 事件的 UnhookWindowsHookEx() 方法。
请查看 Stephen Toub 在 MSDN 上发表的文章。 https://web.archive.org/web/20160217145327/http://blogs.msdn.com:80/b/toub/archive/2006/05/03/589423.aspx
- 最后是使用
OnAction
Addin 类的属性。此方法需要使用一些 VBA (就指向底层 .net 插件的回调方法而言),只要您愿意在解决方案中分发一些 VBA,就可以正常工作(即带有 VBA 项目的 xls 或 doc,或者可能是本机插件)。请注意,您还需要标记comvisible = true
,并暴露GetAutomationServiceObject
方法,以便您的 VBA 可以从 VBA 代码引用您的插件。
请参阅此处的线程... https://social.msdn.microsoft.com/Forums/en-US/6265bb47-1b66-4173-9892-fa4515a6cb80/shortcut-key-for-excel-addin?forum=vsto
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)