Office 2007的VBA,以及Office开发的随想
Office 2007中,最为关心的是微软对VBA的态度,是抛弃、搁置,还是持续的改进。看到了dudu试用Office 2007的帖子,今天也下载了Office 2007 beta2,安装试用了一下。
结论
先说结论,总的感觉,微软的Office 2007是尽量在原有基础上的革新,而不是改进。包括几个方面:
(1)用户界面,这种新的内容驱动的用户界面,抛弃了菜单和工具栏的形式,也许会成为以后的趋势。当然只能说也许,因为像Office XP之后引进的类似任务窗格的尝试渐渐有些没落了。
不过,Office一直作为用户界面革新的先行者,这次动作比较大,应该有所影响。经过2-3个版本的稳定、探索,下一轮的的UI主流也许已不是菜单、工具栏了。而且,Ribbon UI的开发也完全是使用XML描述的,与WPF编程模式类似,易于分离程序逻辑和UI。
(2)网络协作,Office 2007处处可以看到网络的影子,例如把Excel保存到Excel服务,Outlook的网络日历、联系人。
其他服务器方面,由于没有试用,就不好说了,但Office的重点渐渐转到作为一个开发平台,而不是一个Office应用软件。
(3)开发,VBA的保留大概只是为了向后兼容,改进的幅度越来越小。以后Office开发的主流应该是服务器开发和VSTO的开发。但Office可以获得大量应用,与Excel、Access大量的业余程序员不无关系,如何找到合适的VBA的替代品应该是微软的当务之急。希望不要再出现类似VB 6到VB.net这种转换的事情,到VB2005以及后续版本再补救。
(4)题外话,觉得微软的开发工具越来越重,说自己熟悉的,VB、VC比起.net都够轻, ASP比ASP.net,VBA比VSTO,等等。随着动态语言的流行,开发工具和开发方法越来越轻量级的情况下,微软这种做法是否会失去什么?想想更喜欢重量级工具的IBM。
下面是试用报告。
Outlook
据说Outlook增加了一个Instant Search,安装打开以后才发现,原来是集成的Windows Desktop Search,不装也罢。其他窗口美观程度也有所增加,组织方式更舒服一些,但升级的诱惑不大。
下面是Outlook文件管理,可以管理Email,Feeds等文件,可以把日历、地址簿存放于网络。
新增的Todo Bar,需要办得事情一目了然。
Word 2007
Word是这2年使用比较多的软件,由于使用了新的UI,总体的感觉有所差别,但会很快适应。现在个人的写作习惯是左侧文档结构图,右侧是样式窗格,中间是操作区,文档结构图可以从视图中选择,2007还增加了新的页面缩略图视图,样式窗格可以单击Styles的More打开,拖动到右侧Dock。
新增了文献数据库,没有试用,不知道功能如何。缺省的文件格式是新的格式,可以保存为旧的格式。
Excel 2007及其VBA
Excel是这次试用的重点,如何调用VBA需要在开始菜单的Option中选择Developer Tab。
然后就可以显示Developer Tab,打开VBA编辑器。
VBA IDE的版本是6.4,2003的VBA是6.0,VBA IDE没有什么改进(至少目前的Beta版本是这样),不过代码窗口可以使用鼠标滚轮滚动了。
保存有VBA代码的Excel文件会弹出警告,需要使用Save As保存。
打开包含VBA代码的文件,会显示一个安全警告:
运行宏以后,可以进入设计模式,添加各类控件:
加载宏需要在设置窗口来设置。加载宏自定义的按钮会显示在新增加的Add-in Tab,忘了试试菜单,不知增加在什么地方。
一般宏都可以运行,但使用了图表对象的宏可能要修改,这次升级,对于兼容性,也许是一次考验。
我测试了自己的几个VBA程序,除了GCDPlot的绘图部分,其他的都可以很好的运行。