引言
在这个快节奏的社会,我们对数据的处理也更要求高效快捷,VBA为我们提供这个途径。VBA是微软提供的一种统一的应用程序自动化语言(Visual Basic For Application),它并不是只存在于Excel中,事实上在微软的Office软件中都带有VBA。由于VBA在数据处理上的强大优势,使的Excel成为它的第一个附体。另外,微软也提供了VBA的开发环境IDE,这样VBA可以不依附在其它软件中,可以独立的开发。而VBA强大的另一个方面在于它可以将已有的数据和开发的客户端程序一起包装,整合使用。
1.VBA的工作原理和开发环境
VBA技术说到底是一种高级的编程技术,通过编写代码完成某个应用程序的特定的功能。对于VBA而言,他的对象就是微软公司Office中的各个应用程序。每一个应用程序都有自己特定的Application对象。具体到Office Excel,数据表对象和图形图像对象是它的主要对象。
1.1工作原理
首先,作为一个编程工具VBA需要一个工作平台,Excel恰好提供了这平台,VBA利用这个平台可以将自己的各种功能发挥的淋漓尽致,使Excel数据处理能力更强大,也更加灵活。从使用的简易性看,VBA依然是VB的面向对象的程序设计,对开发者的编程技术要求并不高,VBA也是比较新的宏语言,使得它的使用更加简单。对于VBA与Excel以及VBA与VB的关系和工作原理可以通过下边的图来解释。
原理图1
VBA为一个编程工具,可以产生VBA代码,这是增强应用程序的实际代码。同时,VBA服务实际对象是Excel的应用程序。如果没有VBA这个工具,就不能产生服务代码,如果没有代码也谈不上增强Excel功能。没有VBA,Excel也不能找到自己需要的代码,因此我们说是VBA给了代码和Excel合作的机会,VBA就是联系两者的桥梁。其工作过程可以简单理解为:客户把Excel需要加强的功能给开发人员,设计者对此设计出Excel的应用程序,这个应用程序就是VBA的对象,进而设计者利用VBA,编写需要的代码,经过编译产生Excel所需要的VBA代码,最后,VBA将已有的应用程序的代码和VBA代码进行封装,生成满足客户需要的“加强版”Excel。
1.2开发环境
前面已经提到VBA实际上可以认为是VB的子集合,这样它的运行环境也就很好理解,就是VB的运行的IDE环境,都是基于Basic。它们包含的对象以及对象的属性和方法都是相同的。两者的不同在于它们的运行平台不同,相对来说VB的运行平台更广,VBA则只是运行在Excel中,但也因此VBA可以利用Excel的数据处理功能,包括报表、数据统计、图形分析等。对于开发人员来说很有必要认识清楚VB和VBA的区别,在此列出以下几条:1. 利用VB开发的Windows应用程序,它的代码部分最后必须是生成机器码,而VBA开发的代码并不直接生成机器码,而是在产生VB的代码后就停止,其他工作就不在属于VBA,这是VBA的宏语言所决定;2. 在独立性方面VBA明显不如VB,实际上VB有自己的开发环境,而VBA必须依附于某个应用程序,Excel就是VBA很好的“宿主”;3. VBA虽然有运行平台的限制,但这也是它的优势,可以利用平台已有的功能加强自己而且可以简化开发周期,这是VB所不具有的。尽管有这样或那样的不同,但是由于VB和VBA在构架上是相同的所以对开发者来说还是很简单的,而且在程序的移植方面也是比较简单的。
2.VBA的具体开发流程
对于任何一种编程工具,在使用之前我必须了解它的运行环境和它的基本语法,这是开发的两个基础。同样,VBA也不例外,首先,VBA运行在IDE下,那么我们就必须了解在这个环境下如何创建工程,如何创建对象(面向对象的程序设计必须有这一步),以及是否需要设计窗体;其次,对VBA基本的语法要熟悉,对于有使用VB经验的开发者是很简单的。VBA比较特殊的地方就是宏,其实宏就是按照一定顺序执行的指令,或者说是指令集,当我们重复性操作的时候,就可以利用宏,不需要每次操作都执行各种指令,一个宏就解决问题。为了方便理解和加深记忆,下面我举出一个自己制作COM组件供Excel调用的实例。本实例比较简单没有涉及窗体设计和图形设计。
ExcelApp.dll
//对象声明
Private xlsApp As New Excel.Application
//打开工作簿函数
Public Sub Opening()
xlsApp.Workbooks.Add
xlsApp.Visible—True
End Sub
//写入工作簿函数
Public Sub Writing(By Val column As Byte,By Val row As Byte,By Val data)
xlsApp.Cells(c,r).FormulaRlCl=data
3.结束语
VBA的进入使诸如Excel等Office软件的功能更加强大,同时VBA语法简单,可移植性强,对开发人员的要求也不高,所以,对VBA的进一步研究和开发利用势在必行,尤其它和Access以及SQL的结合更是研发的重点。
参考文献:
[1]Jelen B,Syrstad T.Excel 2007 VBA与宏完全剖析【M】.郭兵英,泽.北京:人民邮电出版社,2008.
[2]魏汪洋.Excel 2007 VBA高级编程【M】.北京:电子工业出版社,2009.
[3]Walkenbaeh J.中文Excel 2007高级VBA编程【M】.冯飞,焦瑜净,泽.北京:清华大学出版社,2009.
[4]格林.Excel Home译.Excel 2007参考大全【M】.北京:人民邮电出版社,2009.
[5]赵全斌.Excel 工程应用【M】.北京:清华大学出版社,2009.