ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
楼主: 灰袍法师

[原创] VBA 全自动使用DLL 的各种封装方法 - 完全公开源码和方法(如用VSTO就什么都不用学)

  [复制链接]

TA的精华主题

TA的得分主题

发表于 2013-1-30 11:31 | 显示全部楼层
本帖已被收录到知识树中,索引项:封装
大师级人物,过贴留痕啊,膜拜!!!!

TA的精华主题

TA的得分主题

发表于 2013-2-13 13:53 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助

有没有办法在Excel工作表中用DLL中的函数呢!?

ClassLibrary2.rar (48.73 KB, 下载次数: 77)
附件内包含:vb2008全部代码和文件,Excel测试文件(全部注释),注册和卸载文件

照葫芦画瓢做了一个,在VBA完全没有问题
不错,感谢楼主,困扰我的问题解决的一半。
想问问大家:这样的函数能不能在工作表的单元格内使用呢?

下面是制作的全过程,见笑,会的就不用看了:

  1. '*********************************
  2. '*******  北极狐工作室出品  ******
  3. '*******  QQ:14885553      ******
  4. '*********************************
  5. '利用VB2008生成自定义函数DLL
  6. '
  7. '=========================VB2008=====================================================================
  8. '新建项目--选择:类库,可以修改ClassLibrary1的名字,这将是生成DLL的名字
  9. '项目名字上右键--添加--新建项--COM类,可以修改ComClass的名字
  10. '现在可以删除Class1.vb了,保存项目。
  11. '代码区已将所需基础代码写好了,现在需要写入自定义函数的代码:
  12. '    Public Function Addnumsss(ByVal X As Integer, ByVal Y As Integer) As Integer
  13. '        Addnumsss = X + Y
  14. '        Return Addnumsss
  15. '    End Function
  16. '项目名字上右键--生成,在\bin\Release文件内就有了这个Dll文件
  17. '=========================注册和卸载过程=================================================================
  18. '用regasm注册VB2008编写的dll,就是将下面的一句保存为BAT文件
  19.     '注意:Framework的版本号,将路径修改为你的DLL全路径
  20.     '卸载:
  21.     'C:\Windows\Microsoft.NET\Framework\v2.0.50727\regasm.exe "D:\Backup\我的文档\120\ClassLibrary1.dll" /u
  22.     '注册:
  23.     'C:\Windows\Microsoft.NET\Framework\v2.0.50727\regasm.exe "D:\Backup\我的文档\120\ClassLibrary1.dll" /codebase
  24. '也可以再VBA中自动注册:
  25.     'mypath = ThisWorkbook.Path & ""  '//DLL所在文件夹
  26.     'mydll = "ClassLibrary1.dll"       '//DLL本身文件名
  27.     'cmd = "C:\Windows\Microsoft.NET\Framework\v2.0.50727\regasm.exe "  '需要.NET framework 2.0 或以上支持, office2003需要打补丁 kb907417
  28.     'cmd = cmd & """" & mypath & mydll & """" & " /codebase"
  29.     'Shell (cmd) '调用命令行命令,利用 regasm.exe 向注册表写入 这个ClassLibrary1.dll 的注册信息
  30.     '最好加一个延时,以防止没有加载完成就调用,而出错。
  31.    
  32. '=========================在代码中引用这个DLL============================================================
  33. '在VB6.0中调用:Dim test As New ClassLibrary1.ComClass1
  34. '在Excel的VBA中创建这个DLL的实例:
  35.     Sub TEST()
  36.         Set Obj = CreateObject("ClassLibrary1.ComClass1") '//实例化DLL,格式为:项目名称.COM类名
  37.         MsgBox Obj.Addnumsss(3, 5), , "测试DLL中函数结果" '//在代码中调用函数
  38.     End Sub
复制代码

TA的精华主题

TA的得分主题

发表于 2013-5-1 07:14 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
留贴,慢慢学习中

TA的精华主题

TA的得分主题

发表于 2013-7-23 11:34 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
先收藏了,有空认真学习.

TA的精华主题

TA的得分主题

发表于 2013-7-26 17:04 | 显示全部楼层
大师, 请问自定义函数想要这个效果(如图) 123.PNG 应该怎么做呢?

点评

参考:http://www.excelba.com/Art/Html/333.html,我认为用自定义函数自己返回提示更简单  发表于 2013-7-27 00:04

TA的精华主题

TA的得分主题

发表于 2013-7-27 09:02 | 显示全部楼层
暂时不太懂,留下印记

TA的精华主题

TA的得分主题

发表于 2013-7-27 15:20 | 显示全部楼层
引述法师的话 --  ""我认为用自定义函数自己返回提示更简单""  

我怎么没有想到呢?  大师果然犀利,  谢谢了!

TA的精华主题

TA的得分主题

发表于 2013-8-22 08:30 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
支撑下法师,学习中

TA的精华主题

TA的得分主题

发表于 2013-8-22 09:38 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2013-8-29 23:59 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
谢谢分享 学习了
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-11-15 02:01 , Processed in 0.039873 second(s), 8 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表