VBA封装技术分析 VBA封装技术分析

VBA封装技术分析

  • 期刊名字:电脑与电信
  • 文件大小:740kb
  • 论文作者:周维京
  • 作者单位:惠州农业学校
  • 更新时间:2020-09-25
  • 下载次数:
论文简介

VBA封装技术分析周维京(惠州农业学校,广东惠州516023)[摘要]本文在分析VBA特点的基础上,以一个实例论述了具体的封装过程。[关键词] VBA;封装;分析或者动态链接库文件.动态链接库(Dynamic- _Link Library),1.引言是基于Windows程序设计的一-个非常重要的组成部分。将VBA(Visual Basic for Application)是ffice 自带的二次程序制作成动态链接库,不仅能节省内存开销,减少开发的开发工具,可为日常办公带来极大的便利。在Office中,对于工作量,提高访问速度,更重要的是能将程序源代码进行封一些烦琐、重复的操作,用户可以通过“ 宏”来实现。“宏"唧是装,提供程序的安全性。利用这-特点,可以将VBA代码封由一系列命令和指令组合而成的命令集,其本质是VBA代装到动态链接库文件中,然后在ffice文件中进行调用,从码组成的程序。VBA是微软在其开发的应用程序中共享的而提高安全性。通用自动化语言。VBA初期开发可通过录制“宏”的操作来本文以VBA环境为基础,通过将VBA代码封装成DLL获取代码,在ffice中几乎所有的操作均可通过录制“宏"来文件,并在Word中引用DLL的方法,保证VBA源代码的数获取代码。VBA(Visual Basic for Apliatios)是新- -代标准据安全,提供了一种针对于开放式平台下软件开发的安全处宏语言,是基于Visual Basic for Windows发展而来的,相对理措施。以下操作的前提是已经建好一个VBA工程,且调试于标准VB程序,VBA易于学习掌握,用户可以利用它将繁通过,正确无误。琐、机械的工作转换为VBA程序代码,使工作自动化。VBA3. VBA 代码封装实例提供了一个公共开放的开发平台,通过VisualBasic编辑器3.1建立VB的DLL工程可以实现源程序的共享。选择编译工具: Word,Microsof Basic 6. 0。在Word中编2. VBA 的特点辑并调试VBA源代码,在VB中封装。因为宏具有一些缺陷, 如缺少伸缩的弹性、记录了许多打开Microsoft Basic 6. 0,在“新建工程”中选取“'ActiveX不需要的步骤、记录了许多不需要的资料、无法使用较深入DLL",新建一个工程。在属性窗口中将工程名改为的功能、无法完成重复性的工作、无法完成需要条件判断的VBATest,将类模块名改为TestDll.接着打开“工程”菜单下工作等,因此显现出VBA突出的优越性:VBA是一-个通用“引用”命令,选取“Microsoft Office 11. 0 0bject Library",这程序语言,可共享Microsoft各种相关的重要软件:以VBA-步的引用是DLL连接ffice的关键,不能忽略。然后保存编写的程序允许用户将其复制到Visual Basic中加以调试,工程。用Visual Basic宏来控制Excel;当记录宏不能满足用户需要接下来向工程内添加代码。在Word中打开“工具”一或用记录宏无法记录命令时,可以用VBA语言创造宏来控“宏”- *"Visual Basic编辑器",将VBA代码(假设其中有一制工作簿的各项操作:创建用户对话框、工具按钮或自定义个Test过程)复制到VB类模块TestDI的代码窗口中。命令,把Excel提供的多个工具按钮连接起来,作为一个工3.2 修改代码具按钮;利用重复语句控制循环宏内操作,利用不同参数执VBA虽源于VB,但是两者毕竞存在着- -些差异,VBA行某个相关功能模块,使宏指令完成-系列复 杂操作来连接代码直接放到VB中并不一定能完全无误地正确执行。因多个宏:VBA提供了许多内部函数,还允许用户自定义函数此,需要对转移到VB中的VBA代码做-些必要的修改。来简化对工作簿、工作表、图表等复杂操作(1)修改VBA代码中特有的对象类型。但是VBA在代码的保护上却存在着缺陷。如果不对0如果VBA代码里有诸如Document.Rang.BookMark这VBA工程设置密码保护,代码很容易被人浏览乃至窃取。而些VBA特有的对象,VB编译时会提示错误,因为VB不能且即使利用其自身提供的密码保护机制设置了密码保护,也够识别这些对象,这些对象类型不在VB十一种变量类型之很容易被破解,互联网上有很多针对于Word、Excel 的密码列。i中国煤化工 Oije,然后将这些破解器都可以很容易地对密码进行破解。而Visual C++、对象fVisual Basic、C++ Builder和Delphi 等编译器所编译出来的MYHCNMH GTest,要访问对象程序安全性相对较高,这是因为其代码可编译成可执行文件ThisDocument,而VB中提示”编译错误:变量未定义",用上作者简介:周维京,男,湖北宜昌人,本科,讲师,研究方向:计算机。.述设类型为bject的方法,为过程Test添加一个参数对Test过程的调用代码:ThisDoc来传递ThisDocument,则原过程定义为Test ([,]Dim TestDll As New VBATest. TestDIlThisDoc As Ojec),即在Test过程的参数列表添加ObjetTestDII. Test(ThisDocument)类型的参数ThisDoc.2)根据动态链接库的文件路径,可以在ThisDocumnent(2)修改VBA特有的一般变量.代码窗口中以下列形式引用:VB也无法识别VBA特有的一般变量,如ProtectType.Private Sub Document .OpenOTable 等,可采用类似的方法,将其作为过程的参數进行传On Eror Resume Next递,需要注意的是类型名要设为Variant。l”Me. VBProject. References. AddFromFile“D:!VBATest(3)修改VBA特有的常量.VBA中的一-些常量其命名方式与VB不尽相同,如End SubwdColorRed, msoLineDash, wdReplacell, wdNoSeletion等.(3)将动态链接库文件与Word文档放在同一目录下,在很明显,wdColorRed是Word独有的常量,是表示颜色的,这ThisDocument代码窗口中建立如下引用函数:个在VB中可以用VBRcd来替换;像msoLineDash,wdRPrivate Function GetMyDLLO As Objecteplacell, wNoSelection等,则可以采用直接赋值的方法来On Error Resume Next解决。有关这些常量的值,大多在VBA编辑器中属性窗口能Dim TestDll As Object够查到。Set TestDIl = CreateObjctC" VBATest. TestDI7)代码修改完,调试无误后,就可以成功编译,将工程编译IfTestDll Is Nothing Tbea生成VBATest dll文件。MsgBox“当前目录中未找到动态链接库文件"(3)封装用户窗体Exit Function除了VBA代码可以封装,用户窗体也可以封装到动态End If链接库文件里。在VBA编辑器的工程资源管理器中,选中用Set GetMyDLL = TestDIl户窗体,单击右键,选择”导出文件”,保存窗体文件。然后在End FunctionVB"工程”菜单中选择”添加文件”命令,添加刚才的窗体文以下列形式调用其中Test过程:件.双击VB工程资源管理器中的刚添加的窗体名,在窗体Dim DocLink As Object编辑器中就会.显现所添加的用户窗体,窗体所对应的代码也Set DocLink = GetMyDLL随窗体同时导入了VB.Call DocLink. Tes(ThisDocument) .3.3在Word中引用动态链接库Set Doclink = Nothing现在将之前生成的动态链接库文件VBATest. dI(其中对Test过程的调用应根据实际情况,如Test中包含有一类模块TestDI)在VB中进行调用。Documeat对象,则用TestDIl. Test(ThisDocument),如未包含在Word中调用Test过程,有下列三种方法:VBA特有对象,则可以Call TestDI. Test●(1)在Word中VBA编辑器ThisDocumeat代码窗口,选这三种方法中,第三种由于Word文档和动态链接库处择“工具”菜单下“引用”命令,在引用对话框中引用动态链接于同一目录,可以保证程序的可移植性,在以后使用文档时车:就可以不用再打开VBA编辑器进行代码改动。The Research of VBA Packaging TechnologyZhou Wejjing(Huihou. Agiculurul So,Guangdong 516023.Huihou)lAbenct] h his per,we discus secifice pcagng proces trough tbe example based on the cacerisios ofVBA.[Kaywrd;] VBA: packagng; research中国煤化工MYHCNMHG-35-

论文截图
版权:如无特殊注明,文章转载自网络,侵权请联系cnmhg168#163.com删除!文件均为网友上传,仅供研究和学习使用,务必24小时内删除。