我正在使用Turbo Delphi 2006.
DLL将作为VBA/DLL组合的一部分从Excel中调用.
问题的第一部分是试图找出如何向DLL传递对当前Excel会话的引用.我见过的大多数其他代码都是它启动了一个单独的Excel实例,而不是你所在的实例.
我已经看到一些C++代码创建了一个实例,IDispatch
然后将一些东西传递给IDispatch对象的方法,但不知道很多C++.
有任何想法吗?
你所描述的被称为编写COM插件.您需要创建自动化DLL并实现该IDTExtensibility2
接口.然后,您将收到Excel Application
界面作为OnConnection
方法的参数.
您还需要将DLL 注册为插件,以便Excel自动加载它.
编辑:忘记提及:你可能想看一下Add-in Express.他们的框架和组件使得开始创建Office插件非常容易.你绝对不必费心去细节IDTExtensibility2
.所有这些都带有(合理的)价格标签.