Execl VBA技术简介
报表是企业管理的基础,企业管理人员每天需要处理不同类型,不同口径,不同格式的基础报表,从基础数据中进行挖掘分析,进而做出决策。在数据处理量不大的条件下,通过人工判断、筛选、加权、计算等步骤可以整合出满足条件的新报表,但在数据处理量大或者逻辑判断复杂的情况下,这种处理方法不仅单调枯燥、费时费力,而且容易出错,而利用Execl自带的功能强大的VBA技术,能实现自动判别、自动筛选、自动计算,最终能自动输出所需格式报表,将报表制作人员从繁重的数据中解脱出来,将更多的精力投入到数据分析决策中来,极大地提高办公效率。
1 ExeclVBA技术简介[1]
VBA(Visual Basic for Applications)是Microsoft Office集成办公软件的内置编程语言,是新一代标准宏语言。VBA是基于VB(Visual Basic)发展起来的,与VB有很好的兼容性, “寄生于”Office应用程序,面向对象(OOP),能将繁琐、机械的工作自动化,在WORD、EXECL、POWERPOINT、ACCESS等Office系列中能通用。此外,CAD、CorelDraw等图形软件也支持VBA语言。
1.1 VBA与VB的主要区别
(1)VB用于创建标准的应用程序,VBA是使已有的应用程
序自动化;(2)VB具有自己的开发环境,VBA寄生于已有的应用程序;(3)VB开发出的应用程序可以是可执行文件(EXE文件),VBA开发的程序必须依赖于它的父应用程序(Office)。 1.2 VBA的主要功能
(1)使重复的任务自动化;(2)自定义工具栏、菜单和界面;(3)简化模版的使用;(4)自定义Office,使其成为开发平台;(5)创建报表;(6)对数据进行复杂的操作和分析。 1.3 以Office为开发平台的优点
用其他语言开发应用程序,大约一半左右的工作是编写一些基本功能的模块,包括文件的打开和保存,打印、复制等,而用Office作为开发平台,则由于已经具备这些基本功能,可以直接使用,因此,开发工作量大大减少。 2 VBA应用程序的优化[1]
在开发和调试完应用程序后,还要对应用程序进行优化。VBA是非常灵活的编程语言,完成同样一个任务可以有多种方法。初学时或编写一次性使用的程序,只须完成特定功能即可,但如果解决方案是频繁使用的,如完成周报表的应用程序,或每次打开文档都运行的代码,就需要优化代码,使运行时需要较少的时间和内存。
2.1 尽量使用系统提供的属性、方法和函数
OFFICE对象有上百个,对象的属性、方法、事件更是数不胜数,对于初学者来说不可能对它们全部了解,因此不能很好地
利用这些对象的属性、方法和函数,而另外编写VBA代码段实现相同的功能。自编代码段一般要比原有对象的属性、方法和函数完成任务的效率低。
2.2 尽量减少使用对象引用
每个对象的属性、方法的调用都需要通过OLE接口的一个或多个调用,这些OLE调用都是需要时间的,减少使用对象引用能加快VBA代码的运行。 2.3 变量和常量的使用
尽管在代码中使用Variant变量很方便,但VBA在处理Variant变量值比处理显式类型变量需要更多的时间,但使用显式变量会牺牲掉灵活性,如此会遇到溢出问题,而使用Variant变量则能自动处理这种情况。 3 VBA程序代码的保护[1]
代码保护是为了防止他人随意读取或修改源程序代码,保护软件开发人员的知识成果。要想不让软件使用者查看和修改程序代码,可以采取如下方法: