如何实现VBA代码怎么把类封装成dll为dll无需注册安装dll?

  在中除了可以利用设置外还可以利用VBA编程进行加密,利用VBA编程可以令加密更加严谨,下面是由学习啦小编分享的excel2010 vba加密的,希望对你有用。

  利用VBA加密步骤1:对想发布自己的Excel VBA的开发者来说,Excel VBA本身不提供VBA代码的加密,封装。目前比较最可靠的Excel VBA代码加密的方法,就是把VBA代码编译成DLL(动态链接库文件),在VBA中调用,从而实现VBA代码的加密,封装,方便和Excel文件整合发布出去。DLL文件基本没法被破解,除此之外其他的VBA加密方法,都可以被轻易破解。用户只需要你的Excel文件,和这个dll文件就够了,不必安装其他任何程序。

  利用VBA加密步骤2:编译成DLL文件其实很简单。机子上安装Visual Basic 反倒有点麻烦。Visual Basic通过OLE(对象链接引擎)技术调用Excel以及其中的对象。

  利用VBA加密步骤3:总的来说,VBA代码只要做一些简单修改就可以了。主要是对Excel对象的引用,不然VB不能识别vba代码中的对象。比如如下的VBA代码

  直接放进VB中编译成Dll就会有问题,因为VB不能直接识别range对象。

  需要添加几行简单的代码来告诉vb怎么引用excel中的这些对象:

  利用VBA加密步骤4:然后就照搬你原有的vba代码,但是前面加上对象引用:

  利用VBA加密步骤5:对VBA代码做这样修改,在VB中调试通过,就可以成功的把多个sub子程序全部编译封装在一个单独的DLL文件了。以后直接在VBA中引用这个DLL文件中的各个sub子程序。原来大段的VBA代码全部被封装在DLL文件中,对用户不可见。

  利用VBA加密步骤6:开发者还可以在程序运行前显示软件的版权信息,设置密码。因为这些也封装在DLL文件中,所以用户没法破解。

  EXCEL中如何控制每列数据的长度并避免重复录入

  1、用数据有效性定义数据长度。

  用鼠标选定你要输入的数据范围,点"数据"->"有效性"->"设置","有效性条件"设成"允许""文本长度""等于""5"(具体条件可根据你的需要改变)。

  还可以定义一些提示信息、出错警告信息和是否打开中文输入法等,定义好后点"确定"。

  2、用条件格式避免重复。

  这样设定好后你输入数据如果长度不对会有提示,如果数据重复字体将会变成红色。


《将VBA代码编译封装成为DLL动态链接库方法》由会员分享,可在线阅读,更多相关《将VBA代码编译封装成为DLL动态链接库方法(4页珍藏版)》请在人人文库网上搜索。

1、将VBA代码编译封装成为DLL动态链接库方法在OFFICE中使用VBA虽然方便,并且功能强大,但是 VBA在代码的保护上 却存在着缺陷。如果不对VBA工程设置密码保护,代码很容易被人浏览乃至窃取。 而且即使设置了密码保护,也很容易被人破解。因此,要想真正保护VBA代码,要想让别人无法或难于破解您的 VBA代码, 那么,我们可以将VBA代码编译成为DLL动态链接库,也就是封装成为DLL的意 思,下面是与此相关的方法,希望对您有所帮助。一、为什么要编译成为DLL我们知道,Visual C+、Visual Basic 和 C+ Builder 以及 Delphi 等编译 器所编译出来的程序不容易被人

2、破解(相对来说),这是因为代码被编译成了可执行文件或者动态链接库文件。那么,我们是否可以将VBA代码封装到动态链接 库文件中,然后用 Word调用呢?回答是肯定的。而且这样做还有一个好处,即 可以加快代码的运行速度。二、将VBA代码封装成动态链接库假如我们已经写好了一个VBA工程,而且运行无误。建立VB工程及一般性操作首先,我们需要两种工具,其中当然包括Microsoft

3、ACIs。然后 在“工程”菜单下打开“引用”,选取“ Microsoft Office 11.0 Object Library ”这一步很是关键,切不可遗漏,然后保存工程。下面我们所做的是向工程内添加代码。将VBAX程中的一个名为Test过程的代码选定后复制,然后切换到VB编辑 器,选中VB的工程管理器中的类模块 VBACIs,将代码粘贴至代码编辑窗口中, 于是这段代码便成了类模块VBACIs 个方法,然后将工程编译生成dll文件(如 果编译成功的话)。在Word中,我们就可以通过类模块 VBACIs建立的对象来调 用此方法(具体怎么调用,我们将后面介绍)。当然,我们可以继续向工程里添 加代码

4、。修改代码虽然VBA源于VB但是两者毕竟存在着一些差异。因此,需要对转移到VB中的VBA代码做一些必要的修改。A、修改VBA代码中所特有类型的对象如果我们所添加的代码里有VBA所特有类型如Documen、RangBookMark等所建立的对象,编译时会提示错误,因为VB不能够识别这些对象。此时修改的方法是,将这些对象作为过程或函数的参数进行传递。需要注意的是,这些参数的类型都一律设为Object。例如,我们在过程Test中要访问对象ThisDocument,但是VB无法识别

on很明显,wdNoProtection是Word所独有的常量,不为 VB所能识别,因而 无法通过编译。怎样解决这个问题呢?当然,我们可以用修改变量的方法予以修 改。但是聪明的读者会想到:如果我们知道了wdNoProtection的值,就可以直接将值

6、赋给Protecti on Type。但是接下来的一个问题是:我们怎样才能获得 wdNoProtection的值呢?方法很简单,就是让 Word “开口”告诉我们。在Word一个事件中添加以下语句:MsgBox CStr (wdNoProtecti on)其中CStr是类型转换函数,返回参数相应的字符串。只要在Word中触发此 事件,会弹出一个对话窗,显示“

7、三、封装用户窗体我们也可以将用户窗体封装到动态链接库文件里。首先打开Word的VBA编辑器,选中工程资源管理器中的用户窗体,点击右键,选择“导出文件”,选定 路径后,将窗体文件保存。然后切换到 VB编辑器,在“工程”菜单中选择“添 加文件”命令,添加保存的窗体文件。添加结束后,我们会发现VB编辑器中的工程资源管理器中的设计器出现了刚添加的窗体名,选中后双击,在窗体编辑器中就会显现所添加的用户窗体。到了这里,读者会问:窗体还有代码呢,怎么办?先别急,试一试下面的操 作,你就会明白,问题早已不再是问题了。选中工程资源管理器中的用户窗体, 点击右键,选择“查看代码”,你就会高兴发现,在代码编辑框中出

8、现了窗体所 对应的代码。原来,在我们导入窗体文件的同时也导入了窗体的代码!当然高兴之余,不要忘了还要对这些代码按照我们上述的方法进行必要修改,以保证代码顺利地通过编译。这样Word就可以通过类模块VBACIs间接地调用窗体。四、在Word中引用动态链接库假如经过我们编译已生成了一个动态链接库文件VBAPrj.dll,其中有一类模块VBACIs,此类模块有一个方法 Test(Doc As Object)。接下来我们所要做的是用Word调用Test,有三种方法可供选择:1. 打开 Word的VBA编辑器中ThisDocument代码窗口,点工具菜单下的 引用命令,在引用对话框中引用该动态链接库。调

我要回帖

更多关于 计算机植入木马程序 的文章

 

随机推荐