Visual Basic for Applications(VBA)是一种Visual Basic的一种宏语言,主要能用来扩展Windows的应用程式功能,特别是Microsoft Office软件。也可说是一种应用程式视觉化的Basic Script。1994年发行的Excel 5.0版本中,即具备了VBA的宏功能。
(资料图)
什么是Excel应用程序?利用Excel和VBA为平台,开发出来的电子数据表即称Excel应用程序。
什么是宏?宏是一系列的命令与函数,存储于 Visual Basic 的模块中,并在在需要执行该项任务时可随时运行。如果经常在重复某项任务,那么可以用宏自动执行该任务。
上面是VBA的三个概念,那为什么要用VBA?为什么要以Excel为平台来开发程序?
这里说几个简单的理由!
1、当使用Excel为平台时,你的程序就可以利用Excel现有的功能,可以站在一个小巨人的肩膀上,这就可大大减少开发的周期。
2、几乎所有的电脑中都有Excel,也有大量的人正在使用Excel,但并不是每个人都会使用VBA,当你了解VBA后,以前的很多问题就可能在这就迎韧而解。
3、Excel开发程序分发很容易,只要电脑中有Excel,基本不需要在其它的文件,简简单单的复制与粘贴,就完成了文件的分发。
4、VBA的语言是相对容易学的语言,很容易上手,如果你熟悉VB,那你发现它们在语言方面是相通的,而如果你对Excel比较了解,那你也就很容易理解Excel的各种对象了。
最后,任何东西都不是万能的Excel与VBA也是一样。
如,Excel是一个电子表格程序,如果你把它强加成数据库软件是不公平的,在处理较少的数据,比如几千行的,用Excel是比较理想的,而大量的数据时,你就应该考虑用数据库了,比如Microsoft Office中的Access等,或者将两个相结合。
充分了解Excel的基本知识与VBA的编程技巧,你就会从中获得乐趣,让我们一起来吧,走进VBA的世界中。
VBA的用途
由于微软Office软件的普及,人们常见的办公软件Office软件中的Word、Excel、Access、Powerpoint都可以利用VBA使这些软件的应用更高效率,例如:通过一段VBA代码,可以实现画面的切换;可以实现复杂逻辑的统计(比如从多个表中,自动生成按合同号来跟踪生产量、入库量、销售量、库存量的统计清单)等。
掌握了VBA,可以发挥以下作用:
1.规范用户的操作,控制用户的操作行为;
2.操作界面人性化,方便用户的操作;
3.多个步骤的手工操作通过执行VBA代码可以迅速的实现;
4.实现一些VB无法实现的功能。
VBA和VB的区别包括如下几个方面:
1. VB是设计用于创建标准的应用程序,而VBA是使已有的应用程序(EXCEL等)自动化
2. VB具有自己的开发环境,而VBA必须寄生于已有的应用程序.
3. 要运行VB开发的应用程序,用户不必安装VB,因为VB开发出的应用程序是可执行文件(*.EXE),而VBA开发的程序必须依赖于它的父应用程序,例如EXCEL.
4.VBA是VB的一个子集。
尽管存在这些不同,VBA和VB在结构上仍然十分相似.事实上,如果你已经了解了VB,会发现学习VBA非常快.相应的,学完VBA会给学习VB打下坚实的基础.而且,当学会在EXCEL中用VBA创建解决方案后,即已具备在WORD ACCESS OUTLOOK FOXPRO PROWERPOINT 中用VBA创建解决方案的大部分知识.
* VBA一个关键特征是你所学的知识在微软的一些产品中可以相互转化.
* VBA可以称作EXCEL的“遥控器”.
VBA究竟是什么?更确切地讲,它是一种自动化语言,它可以使常用的程序自动化,可以创建自定义的解决方案.
此外,如果你愿意,还可以将EXCEL用做开发平台实现应用程序.
Office取得巨大成功的一个重要原因就是VBA,使用VBA可以完成很多事情,基于Excel、Word的VBA小程序不计其数。
VBA程序员很多是业余程序员,正因为业余,解决的却是工作中需要解决的问题;所以,VBA程序大多都是只是在部门内部或个人使用的小工具。
集成了VBA的其他应用程序也很多,但真正能为程序增色的不多。
大多数人看到了VBA可以自动化一个程序,可以扩展已有程序,但没有看到在Office中,VBA代码可以是录制的,而不是写出来的,带来的好处是,学习曲线变得非常缓。如果没有宏录制功能,要熟悉某个Office组件的对象模型,绝非一日之功。
以ArcGIS为例,ArcGIS扩展必须使用ArcObject,不管是使用VBA也罢,VB也罢,还是C++也罢。但同时,ArcObject的学习不是一天两天可以搞定,对于业余程序员,要使用VBA来扩展ArcGIS,几乎没有可能;专业程序员又不屑使用VBA;而对于公司,如果要基于ArcObject来扩展ArcGIS,选择VBA意味着源码的保护很困难。所以,ArcGIS的VBA就如同鸡肋。