vba调用vs2005使用atl开发的com组件

1、新建工程

New — Project — ATL Project

勾选Allow merging of proxy/stub code

2、添加接口

右键工程 — Add — ATL Simple Object

3、添加接口函数

类视图中,右键接口 — Add — Add Method

4、添加事件

类视图中,展开类型库,右键连接点接口 — Add — Add Method

5、实现连接点事件

点击确定后,会生成事件代码。

6、触发事件。

STDMETHODIMP CComDllExample::Method1(LONG arg1){// TODO: Add your implementation code hereFire_Event1(2.0);return S_OK;}

在Method1中调用一下生成的Fire_Event1函数。

7、编译工程。

VBA中调用生成的组件

1、打开vba开发工具,添加ComDll组件的引用

通过 工具 — 引用 打开引用管理器。

2、调用代码

Private WithEvents mComDll As ComDllExamplePrivate Sub mComDll_Event1(ByVal arg1 As Single)    Debug.Print Str(arg1)End SubPrivate Sub Worksheet_SelectionChange(ByVal Target As Range)    Set mComDll = New ComDllExample    mComDll.Method1 (20)End Sub

需要注意的地方

a)comdll接口函数参数类型要和VB兼容。 遇到过设置ULONG类型的参数,但是到VBA里面提示类型无法解析,改成LONG就好了。

b)VB里面,使用WithEvents处理对象事件时,还需要单独set一下对象实例。

人生才会更有意义。如果没有梦想,那就托做庸人。

vba调用vs2005使用atl开发的com组件

相关文章:

你感兴趣的文章:

标签云: