封装我们的VBA 代码 Visual Basic for Applications(简称VBA)是新一代标准宏语言,是基于Visual Basic for Windows 发展而来的。VBA 提供了面向对象的程序设计方法,提供了相当完整的程序设计语言。VBA 易于学习掌握,用户可以容易地将日常工作转换为VBA程序代码,使工作自动化。 但是VBA 在代码的保护上却存在着缺陷。如果不对VBA 工程设置密码保护,代码很容易被人浏览乃至窃取。而且即使设置了密码保护,也很容易被人破解。笔者就曾用破解工具officekey轻松地破解了他人设置的密码保护,不费吹灰之力便浏览了其中的代码,而且从中发现了文档保护密码。可见,要想保护自己的VBA 代码,仅仅设置密码保护是不够的。 我们知道,Visual C++、Visual Basic 和 C++ Builder 以及 Delphi 等编译器所编译出来的程序不容易被人破解(相对来说),这是因为代码被编译成了可执行文件或者动态链接库文件。那么,我们是否可以将VBA 代码封装到动态链接库文件中,然后用Word 调用呢?回答是肯定的。而且这样做还 有 一个 好 处 ,即可以加 快 代码的运 行速 度 。 将VBA 代码封装成动态链接库 假 如我们已 经 写 好 了一个 VBA 工程,而且运 行无 误 。 1.建 立 VB 工程及一般 性 操 作 首 先 ,我们需 要两 种 工具,其中当然包 括 Microsoft Word,另外一种是Microsoft Basic 6.0。 打开Microsoft Basic 6.0,在“新建工程”中选取“ActiveX DLL”,新建一个工程。在属性窗口中将工程名改为VBAPrj,类模块名改为VBACls。然后在“工程”菜单下打开“引用”,选取“Microsoft Office 11.0 Object Library”——这一步很是关键,切不可遗漏,然后保存工程。下面我们所做的是向工程内添加代码。 将VBA 工程中的一个名为Test 过程的代码选定后复制,然后切换到 VB 编辑器,选中VB 的工程管理器中的类模块VBACls,将代码粘贴至代码编辑窗口中,于是这段代码便成了类模块VBACls一个方法,然后将工程编译生成dll 文件(如果编译成功的话)。在Word 中,我们就可以通过类模块VBACls 建立的对象来调用此方法(具体怎么调用,我们将后面介绍)。当然,我们可以继续向工程里添加代码。 2.修改代码 虽然VBA 源于 VB,但是两者毕竟存在着一些差异。因此,需要对转移到 VB 中的 VBA 代码做一些必要的修改。 (1)修改VBA 代码中所特有类型的对象。 如 果 我 们 所 添 ...