ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 Excel Home精品图文教程库
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
300集Office 2010微视频教程 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 116371|回复: 206

VBA代码封装助手(永久免费)

  [复制链接]

TA的精华主题

TA的得分主题

发表于 2014-10-13 12:41 | 显示全部楼层 |阅读模式
本帖已被收录到知识树中,索引项:封装
关于封装   
     对于VBA爱好者而言,往往最后一个步骤都是封装代码。
     什么是封装呢?将VBA代码加工成DLL文件的过程就是封装(也可能是OCX格式或者EXE格式,但DLL格式使用最频繁)。
    为什么要封装呢?提升代码的安全性,让他人无法查看自己的代码(商业软件必须封装)。
    封装过程中的难点是什么?本工具仅赠送给使用VB 6.0企业版进行封装的用户,因此此处只谈VB 6.0封装过程中的难点。
    封装一般包含五个步骤:1.打开VB创建外接程序  2.添加office与excel的引用  3.设置Connect设计器的“通用”选项  4.将VBA代码复制到VB 6.0中,并加以小小的改造  5.单击文件菜单,生成DLL文件。
    其中第4个步骤的改造代码对于多数初学者而言是一个难点,即在所有Excel对象前添加Excel应用程序对象。例如VBA代码Range("a1")=Worksheets(2).Range("A1").value要改造成xlApp.Range("a1")=xlApp.Worksheets(2).Range("A1").value然后才能封装,否则生成的Dll文件无法使用。那么问题来了,何时应该加前置对象(一个代表Excel应用程序的变量)xlApp呢?这是一个难题,困扰了多数学封装的同学,而本工具的存在价值就是帮你批量添加前置对象,瞬间改靠代码,从而解放双手、提升工作效率和准确度。
   如何使用封装助手?首先将需要封装的代码复制到一个文本文件(后缀名为“.txt”)中,然后单击菜单“封装助手”,在弹出的“请选取存放VBA代码的文本文件”对话框中选择目标文件,然后再在第二个对话框中输入前置变量名字,单击“确定”按钮后瞬间即可转换完成。So Easy!
具体看动画吧
封装助手(动画教学).gif
VBA代码封装助手.rar (1.01 MB, 下载次数: 21661)


TA的精华主题

TA的得分主题

 楼主| 发表于 2014-10-13 12:43 | 显示全部楼层
本工具有一个赠送功能:修复宏选项
宏选项.png
当你的Excel的这个选项被禁用时,可以使用本工具修复。

欢迎提出宝贵意见,个人邮箱:Excelbbx@163.com

TA的精华主题

TA的得分主题

 楼主| 发表于 2014-10-13 15:51 | 显示全部楼层
航起帆扬 发表于 2014-10-13 15:03
这个只能达到封装模块中代码?使用后应该还有需要修改的地方吧,Sheet5.Select前没添加 xlApp.


封装通常是针对通用性的COM加载项,属于通用工具类,而不是仅仅针对单一工作的代码。
通用工具是不可能出现Sheet5这类代码的,因为它是硬编码,没有通用性。

封装时,模块、类模块、窗体全都可以封装,不是仅能封装模块中的代码。

TA的精华主题

TA的得分主题

 楼主| 发表于 2014-12-20 08:27 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
sunsikaibox 发表于 2014-12-19 16:58
罗老师,13年买的您的自学宝典第2版,让我学到了很多很多东西,衷心感谢,但是里面关于封装的内容稍有不足, ...

用自学宝典第2版的内容足够学会封装了
封装是VBA所有环节中最简单的一个
几分钟学会

直接将自己的sub过程替换掉光盘中的案例文件,改一下菜单名字就完成了。

TA的精华主题

TA的得分主题

 楼主| 发表于 2015-4-13 22:24 | 显示全部楼层
LUCKY_ELHE 发表于 2015-4-8 09:04
请教大师,我想对工作表事件进行封装,应该怎么做?以下是对名称为A的工作表事件程序:即对A列单元格输入1时 ...

我的书中有详细说明
http://www.amazon.cn/Excel-VBA%E ... 7%E5%88%9A%E5%90%9B
《Excel VBA程序开发自学宝典(第3版)》

TA的精华主题

TA的得分主题

 楼主| 发表于 2015-5-25 15:06 | 显示全部楼层
岁月无敌 发表于 2015-5-24 17:31
封装后怎么调用呢?

封装时有菜单的,封装后直接安装,然后打开Excel时能看到菜单,单击菜单调用

TA的精华主题

TA的得分主题

 楼主| 发表于 2015-6-18 19:47 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
kuangben8 发表于 2015-6-18 15:46
罗版,您好!
我在使用《E灵》时有个问题:就是使用“逐步提示”功能,原本按照操作指示指定区域和对应提 ...

修复E灵.gif

TA的精华主题

TA的得分主题

 楼主| 发表于 2015-11-16 19:15 | 显示全部楼层
qlh1978 发表于 2015-11-16 11:31
win8.1下64位,office2013 32位,加载不成功
com加载项列表中可以显示,但是选项卡中不能被加载
没有禁用 ...

要安装的VB才行http://pan.baidu.com/s/1xeXu0

TA的精华主题

TA的得分主题

 楼主| 发表于 2015-11-28 09:41 | 显示全部楼层
hyugajin 发表于 2015-11-27 15:15
各位高手,有个疑问:
用vb封装成dll的如下代码
xlApp.ThisWorkbook.Worksheets("Sheet2").Range("a2") = ...

很正常啊,VB中是不存在ThisWorkbook的

TA的精华主题

TA的得分主题

 楼主| 发表于 2017-3-11 14:03 | 显示全部楼层
kezhiye 发表于 2017-3-11 08:17
谢谢andysky版主的无私分享,一直想学习VBA的封装,但一直摸不清头绪。请问版主能否帮忙 ...

《Excel VBA程序开发自学宝典(第3版)》.png
看看我这本书吧,里面相当详细,把VBA代码封装成DLL,再把DLL转换成EXE安装程序的过程都有

您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

关闭

最新热点上一条 /1 下一条

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

GMT+8, 2024-4-23 15:19 , Processed in 0.054081 second(s), 9 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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