戏说 Excel 系列(二)蟑螂传奇
原创文/寒树Office 图/寒树Office
蟑螂传奇
引文:VBA 是 Excel突出重围,打败对手的大杀器,Excel 取得巨大成功的重要原因。Excel 从 1993年就开始支持 VBA,拥有 25 年的支持生命周期,VBA 就是 Office 开发生态系统中的“无法撼动的蟑螂”。蟑螂是成功的,因为它们很简单。
VBA的起源
Lotus 1-2-3,首次出现宏功能
Lotus 1-2-3 是最早具备一定开发能力的“电子表格”,其最辉煌的成就不是多功能的集成,而是其推出的“宏”功能。最初“宏”只作为产品的调试和测试机制,后来开发人员才意识到“宏”的价值,在最终版本中添加了“宏”功能。“宏”为非程序员编程及表格自动化提供了简便有效的帮助,帮助 Lotus 1-2-3 成为“电子表格”市场的领军产品。
Excel4.0,开始引入XML宏
XML 宏只能在“宏表工作表”中编写代码,代码保存在后缀为 .xlm 的单独文件中,因此被称为 XLM 宏。XLM 宏语言包括函数调用以及上百个内建函数,使用户可以通过编程控制 Excel的各种操作,因为如此吸引了一些具备很强编程能力的人创建复杂的程序,但是 XLM 宏语言的在使用上相当的复杂,因此远离了广大的群众用户。
Excel5.0,推出VBA通用宏
此次微软大胆引入 VBA 宏语言,VBA 继承了 VB 很大一部分编程方法。VBA 是一款功能强大的工具,它使Excel形成了独立的编程环境。使用 VBA 和宏,可以把手工步骤自动化,VBA 也允许创建窗体来获得用户输入的信息。作为 Office 通用的宏语言,VBA 比 XLM 更简单,更强大、更有效率。Excel 97发布之后 VBA 最终发展成为主流的宏语言。
XML宏“僵而不死”
XLM宏从Excel 4开始被引入,但是从Excel 5及更高版本开始被更强大易用的VBA所替代,从此不再有本质上的更新。
命令宏
它的功能一般都和菜单选项或其它Excel命令相同。和通常的Excel命令相似,命令宏的最显著特点是可以影响工作环境(工作表、工作区)。不管是格式化范围、打印工作表或建立通用菜单,都能用命令宏来做。
函数宏
它和内置的函数相似,他的显著特点是可以接受参数,并在运处后返回结果。设计比较好的函数宏对当前环境没有影响。
子程序宏
它是命令宏和函数宏的结合。它象函数宏那样能带参数返回结果,又像命令宏那样能影响工作环境。子程序宏经常被其它宏引用,主要目的是简化宏代码。
VBA宏“老兵永不死”
原则一:五分钟原则
VBA只做需要为Office生态而做的事,而不是更多。VBA做了它的创造者为其市场定位所做的事情:让使用者以较少的经验快速实现有限的功能。这绝不意味着开发复杂应用的重型功能。复杂的事情,比如处理线程,是不合适的。如果五分钟内无法解决一个特定功能,应该考虑一下其它种类开发技术。
原则二:最快学习原则
VBA成功的另一个关键是其有限的功能集,缩短了学习曲线。成为一名优秀的VBA程序员所花费的时间比成为一名优秀的C#程序员所需的时间要少得多,而这正是早期Office开发者的主要选择。如果是以自动化Office软件操作为目的,以快速上手Office操作为目标,VBA是最佳选择。
原则三:免写代码原则
最后Office提供了VBA宏录制(macro recorder)的支持,可以录制大多数重复性的工作,以最简单的方式并自动生成代码。宏录制是多数非程序员出身职场小白的最佳选择,VBA也成为了唯一选项。
VBA,无法撼动的蟑螂
VBA是Office取得巨大成功的重要原因之一,使用VBA可以完成很多事情,基于Excel的VBA小程序更是不计其数。Excel从1993年就开始支持VBA,拥有25年的支持生命周期,VBA就是Office开发生态系统中的“无法撼动的蟑螂”。蟑螂是成功的,因为它们很简单。VBA通过抽象底层Windows操作系统的复杂性来实现其目标。VBA 的语言入门门槛较低,而这些用户利用 VBA 解决的正式工作中关键问题。简单的事情很容易完成。因此,VBA 程序大多作为部门内部或个人使用的小工具。
TimeLine/史记.宏
- 1983,电子表格首次引入宏功能
- 1992,微软开始引入XML宏
- 1993,伟大的VBA横空出世