【发布时间】:2016-01-21 02:27:56
【问题描述】:
目前我正在使用带有 VSTO 的 VB.NET 2010 开发 Excel 2010 插件。
活动工作表有一个按钮,其点击事件将由其自己的 VBA 代码处理。
现在我想在 Addin 中处理相同的按钮单击事件,而不影响其原始 VBA 功能。可能吗?我怎样才能做到这一点?
此任务的先决条件是不允许对 Excel 模板(包括其 VBA 代码)进行任何更改。这就是我尝试通过 VB.NET 处理事件的原因。
触发点是Excel模板中的按钮被点击,那么它肯定会引发某些事件,而这种事件肯定会被VBA宏处理,但我想在VB中添加另一个监听器(事件处理程序) .Net 到同一个事件,所以我可以做一些额外的任务。
有谁知道如何添加这样的事件处理程序?
谢谢。
【问题讨论】:
-
不确定我是否明白这一点,但你会在插件中创建一个公司可见类来说 application.run(macro name,args) 然后调用 addin.com class.function 来运行.net 中的宏还是您的意思是将函数迁移到 .net 或处理插件中的点击不像 VBA 中的 _click() ???
-
没有迁移的意图,只是想使用那个特定的按钮点击事件来触发插件做一些额外的任务。现有的 excel 模板是经过批准的表格(带有宏),我不允许更改任何内容。
-
刚刚注意到自动更正更改使 com 可见以使公司。我的 VB.NET 的 Application.Run(x,y,z) 解决方案应该可以做到。在过去,我在非公开类中创建了函数,然后创建了一个公开的包装器来调用这些函数,因此非公开的函数将是 clsFunctions.fnCLICK_BUTTON,而公开的函数将是 clsVBAFunctions.fnCallVBAButton click,将从 VBA 调用
-
感谢 Nathan,但此任务的先决条件是不能对 Excel 模板(包括其 vba 代码)进行任何更改。这就是我尝试通过 VB.NET 处理事件的原因。
-
我迷路了 :) 如果你不告诉它,你就不能让 AddIn 调用现有的函数?
标签: vb.net excel vba vsto excel-addins