VB.Net编写可在VBA及VB6中调用的DLL_COM组件 图文

2017年4月9日18:07:32 评论 3,489 views
表格 定制  数据 合并 处理 分析 VBA 编程 开发 网页
表格 定制  数据 合并 处理 分析 VBA 编程 开发 网页

我们都知道微软.net类库异常强大,而vb6和excel vba里功能有限,我们当然想能在VBA里直接使用net类库多好啊,答案是必然的,当然可以,我们通过vs里建立com项目,就可以把net的一些类库方法重新包装后暴露给vba使用了,简单来说就是实现了在vba或者vb6里调用VB.net编写的类库!

网上我也搜了很多方法,但是都讲的含糊不清,下面是我自己总结的绝对有效的方法,绝壁亲测可用,因为我已经用了很多次了,废话少说,看招!

第一步:打开VS新建项目,选择类库,VB和C#都一样,然后点及确定

VB.Net编写可在VBA及VB6中调用的DLL_COM组件

第二步:在右侧工程管理器视图里,找到系统默认建立的类库,右键删除

VB.Net编写可在VBA及VB6中调用的DLL_COM组件

第三步:还是在工程管理器,项目名上右键-新建项,弹出的窗口里往下拉,选择com类,这里填自己需要的类名字

VB.Net编写可在VBA及VB6中调用的DLL_COM组件

第四步:到这里其实我们已经完成了,在这个新建的com类里,只要你用public标识的字段、方法和属性就会暴露在com接口里。就都可以vb,vba或者其他可以使用com类的地方使用,比如我在vba里的使用后期绑定的效果,当然你可以在工程引用里选择引用donetcomdll,这样你就能在写代码的时候看到自动提示它有哪些类库和哪些方法属性可用

VB.Net编写可在VBA及VB6中调用的DLL_COM组件

第五步:最重要的一步,那就是写好的DLL到客户机器上必须要注册才能运行,net编写的dll注册和普通的不太一样,为此我写了一个bat文件内容如下

VB.Net编写可在VBA及VB6中调用的DLL_COM组件

代码在此,你只需要新建一个txt文件,粘贴下面代码把Excel880.COM改为你自己的com组件项目名,然后另存为bat文件,放到和dll一个目录下,这样和dll一起发给客户,在客户机上双击bat文件即可完成注册,然后代码里就能正常使用了。

更多VBA相关技术分享,可访问博客http://excel880.com

set p=Excel880.COM

set w=C:\Windows\

copy %p%.dll %w%%p%.dll

C:\Windows\Microsoft.NET\Framework\v4.0.30319\RegAsm.exe %w%%p%.dll /tlb:%w%%p%.tlb /codebase

pause

 

  • 郑广学老师微信号
  • EXCEL880B
  • weinxin
  • 我的微信公众号
  • EXCEL880
  • weinxin

发表评论

您必须才能发表评论!