从电子表格内的编程起步
Visual Basic for Applications,简称VBA,是微软为应用软件嵌入的程序设计系统。1993年,Excel成为它最早的微软宿主。语言所面对的是已有电子表格的使用者:他们不必从头制作一个计算与显示程序,而是让现成软件按自己的流程处理数据。它在早期材料中也称Visual Basic Programming System, Applications Edition。
微软产品支持部门1993年12月的Excel 5.0应用说明,把共同宏语言、宏录制器和对象链接与嵌入(OLE)2.0列为可定制解决方案的组成部分。工作表上的控件、工具栏与程序相配合,用户可以把重复操作保存下来,再由按钮或菜单启动。
保留旧宏,逐步迁移
Excel原有的4.0宏语言并未因VBA出现而立即消失。微软的技术说明解释,5.0同时保留两种语言,是为了让使用者逐步迁移。已有4.0宏可以继续运行,VBA过程可以调用旧宏,旧宏也可以反向调用VBA过程。
在Excel 5.0和后来的7.0中,录制宏时仍可选择两种语言;到Excel 97,录制器才只提供Visual Basic。这个区别使“引入新语言”“停止录制旧语言”和“停止运行旧宏”成为不同问题。早期用户既可以沿用已经编好的工作流程,也可以在新程序中逐段采用VBA,无需一次重写整个工作簿。
参考:[3]
用对象指定操作目标
开发者约书亚·特鲁平在1994年的技术文章中,依据Excel 5.0晚期测试版展示了这种写法。表达式“Range("A3:D4").Font.Size = 10”指定A3至D4的单元格区域,将字体大小设为10,无需先改变当前选区。Range确定对象,Font和Size逐层指出要修改的属性。
应用程序把工作簿、工作表、图表和区域等对象交给语言使用;程序可以改变属性,也可以调用对象的方法。With语句把对同一对象的连续操作集中起来,For Each循环则逐个处理集合成员。VBA由此把Basic中的程序结构接到电子表格的具体功能上。
参考:[4]
把程序留在使用者的工作文件里
Excel 5.0提供宏录制、工作表控件和集成的对话框编辑器。用户既可从日常操作录出宏,也可把数据录入与执行程序的入口放进表格。官方应用说明把这些能力与跨程序的OLE支持并列,呈现的是一套围绕办公文件组织工作的开发工具。
这条路线也留下了可继续扩展的工作文件。2006年,温贝托·巴雷托与弗兰克·豪兰德的计量经济学教材将Excel工作簿和自编加载项配合使用:读者改变参数,观察图表及模拟结果,加载项补充教学需要的功能。这些后来的教学材料要求较新的Excel版本,工作簿除保存数据外,也容纳了交互操作与专门功能。
1996年开放语言引擎授权
早期VBA首先随微软的应用软件到达用户。1996年6月4日,微软在美国华盛顿州雷德蒙德发布公告,宣布广泛授权Applications Edition 5.0,让独立软件厂商把语言引擎嵌入自己的产品。公告由开发工具业务副总裁鲍勃·穆利亚说明计划,并列出Mystic River Software与Summit Software提供授权、集成支持和实施咨询。
公告同时预告新的Office、Visual Basic以及AutoCAD、Visio等产品将采用该引擎,并介绍重新设计的开发环境、表单与ActiveX控件支持。它标志着授权范围及配套工具的扩展;1993年在Excel中引入VBA与1996年向外部厂商推广,是两个先后发生的阶段。
参考:[1]