|
有没有办法在Excel工作表中用DLL中的函数呢!?
ClassLibrary2.rar
(48.73 KB, 下载次数: 77)
附件内包含:vb2008全部代码和文件,Excel测试文件(全部注释),注册和卸载文件
照葫芦画瓢做了一个,在VBA完全没有问题
不错,感谢楼主,困扰我的问题解决的一半。
想问问大家:这样的函数能不能在工作表的单元格内使用呢?
下面是制作的全过程,见笑,会的就不用看了:
- '*********************************
- '******* 北极狐工作室出品 ******
- '******* QQ:14885553 ******
- '*********************************
- '利用VB2008生成自定义函数DLL
- '
- '=========================VB2008=====================================================================
- '新建项目--选择:类库,可以修改ClassLibrary1的名字,这将是生成DLL的名字
- '项目名字上右键--添加--新建项--COM类,可以修改ComClass的名字
- '现在可以删除Class1.vb了,保存项目。
- '代码区已将所需基础代码写好了,现在需要写入自定义函数的代码:
- ' Public Function Addnumsss(ByVal X As Integer, ByVal Y As Integer) As Integer
- ' Addnumsss = X + Y
- ' Return Addnumsss
- ' End Function
- '项目名字上右键--生成,在\bin\Release文件内就有了这个Dll文件
- '=========================注册和卸载过程=================================================================
- '用regasm注册VB2008编写的dll,就是将下面的一句保存为BAT文件
- '注意:Framework的版本号,将路径修改为你的DLL全路径
- '卸载:
- 'C:\Windows\Microsoft.NET\Framework\v2.0.50727\regasm.exe "D:\Backup\我的文档\120\ClassLibrary1.dll" /u
- '注册:
- 'C:\Windows\Microsoft.NET\Framework\v2.0.50727\regasm.exe "D:\Backup\我的文档\120\ClassLibrary1.dll" /codebase
- '也可以再VBA中自动注册:
- 'mypath = ThisWorkbook.Path & "" '//DLL所在文件夹
- 'mydll = "ClassLibrary1.dll" '//DLL本身文件名
- 'cmd = "C:\Windows\Microsoft.NET\Framework\v2.0.50727\regasm.exe " '需要.NET framework 2.0 或以上支持, office2003需要打补丁 kb907417
- 'cmd = cmd & """" & mypath & mydll & """" & " /codebase"
- 'Shell (cmd) '调用命令行命令,利用 regasm.exe 向注册表写入 这个ClassLibrary1.dll 的注册信息
- '最好加一个延时,以防止没有加载完成就调用,而出错。
-
- '=========================在代码中引用这个DLL============================================================
- '在VB6.0中调用:Dim test As New ClassLibrary1.ComClass1
- '在Excel的VBA中创建这个DLL的实例:
- Sub TEST()
- Set Obj = CreateObject("ClassLibrary1.ComClass1") '//实例化DLL,格式为:项目名称.COM类名
- MsgBox Obj.Addnumsss(3, 5), , "测试DLL中函数结果" '//在代码中调用函数
- End Sub
复制代码
|
|