写在前面
Visual Basic 6.0由标题栏、菜单栏、工具栏、工具箱、窗体窗口、工程窗口、属性窗口、窗体布局窗口等构成。
Visual Basic 6.0的组件有很多,比如编辑器、设计器、属性等开发组件。Visual Basic 6.0的工具箱由指针、图片框、标签、文本框、框架、命令按钮、复选框、单选按钮、组合框、列表框、水平滚动条、垂直滚动条、定时器、驱动器列表框、目录列表框、文件列表、形状控件、直线、图像控件、数据控件、OLE容器构成。
再说一下什么是DLL,即动态链接库,是Dynamic Link Library的缩写。DLL是一个包含可由多个程序同时使用的代码和数据的库。
相对于VBA,封装后的DLL的源码是不可见的,这在一定程度上避免了源码泄露的风险,当然,对于擅长破解的人来说,这也几乎没什么卵用,不过至少能够起到八成的作用,因为安全本身也是相对的。
本文中的封装DLL工具用的就是VB6.0。
准备工作
创建工程是第一步,同本文主题,自然是创建DLL工程了。
因为要和excel交互,所以要引用excel的lib库,这样的话定义Excel对象的时候才可以成功。
再引用excel的时候可能会发现引用完保存工程以后发现Excel lib就不见了,这可能是软件冲突导致的,可以手动引入来解决
可以看到和原来的版本不一致了,这证明了版本冲突导致了上述问题。
开始编程
Set VBApp = GetObject(, "Excel.Application")
Set wk = VBApp.ThisWorkbook
Set ws = wk.ActiveSheet
Set VBApp = GetObject(, "Excel.Application")
Set wk = VBApp.ThisWorkbook
Set ws = wk.ActiveSheet
'变量初始化区域
substrSQL = ""
jSum = ws.Range("AZ3").End(xlToLeft).Column
iSum = ws.Range("A65535").End(xlUp).Row
VBApp.application.screenUpdating=false
开始封装
文件菜单直接生成即可,会同时生成派生的一些其它文件暂时先不用管。
使用DLL
注意,这里New的一个对象应该是类模块的名称,而不是工程名称,否则就会出错。
另外,还需要注册生成的DLL,使用如下命令:
cmd
regsvr32 myVBAdll.dll
如果弹出如下窗口说明注册成功了。
如果发生错误,大概率会使注册表权限不够所致,可以通过下面的方法重置权限:打开注册表找到下面的路径,右键打开权限设置窗口,将“完全控制”权限赋予当前计算机用户。
写在最后
联系客服