VBA作为Office中使用的宏语言,已经快被淘汰了。它基于Visual Basic的COM版本,这种技术已经有十多年没有做出重大更新了。当然还有Visual Studio Tools for Office,但是非专业人员无法使用它,并且由于COM和.NET技术之间的不兼容,它非常难以使用。还有SharePoint,对于非正式的开发者来 说没有什么成功的案例。如果你需要在Office和SharePoint的本地版本中使用宏,那么最后你会处于混乱之中。
这正是Napa项目发挥作用的地方。Somasegar是这样介绍Napa的:
“Napa”为Visual Studio富客户端提供了一种轻量级的、基于浏览器的工具,它是开始Office和SharePoint开发的一种不错的方式,而且不需要在计算机中安 装任何内容。它通过http://dev.office.com/提供,支持构建针对Office和SharePoint的应用程序、能够深入到 Office 2013应用程序(例如Excel)的应用、Office的Web应用(例如,Excel的Web应用)以及SharePoint的应用。这些应用都基于 新的云应用模型(Cloud App Model),其中UI和其他客户端逻辑都使用Web标准(例如,HTML、JavaScript、CSS)实现的,而后端逻辑会运行在服务器上,让开发 者可以自由地选择开发工具、语言和部署环境。
使用简单的JavaScript可能会出现问题。即便是在理想的情况下,对于临时的用户来说,语言也没有Visual Basic那么友好。语法中长期存在不一致性、区分大小写以及使用字符而不是关键字,这些都会让程序员新手感到迷惑。这些问题都很难处理,但是使用 JavaScript的方式就是这样。
为了创建一个按钮,我们需要一个函数来接受点击事件。这在所有语言里面都是类似的,而难点在于你如何绑定。在VB(COM或.NET)中,函数会以声明的方式附加到按钮上。在C#中,我们可以使用事件处理器(event handler)语法,那需要一行代码。
在Somasegar提供的示例中,你需要为Office.initialize赋予匿名的函数。这个匿名函数会调 用$(document).ready,传入另一个匿名的函数。在那个函数中会存在第三个匿名函数,使用另一个jQuery操作附加到按钮的点击事件上。 这种函数的嵌套对于熟练的web开发者是可以接受的,但是对于想要在Excel中创建简单的宏的开发者并不合适。
幸运的是,你不需要以那种方式来编写代码。正如在这个“概览”中能够看到的,我们可以选择使用上世纪九十年代就出现的传统JavaScript技术。经过简单地介绍HTML和Office的异步模型,开发者就能够编写简单的应用程序了。
使用Napa需要你在Office 365开发者站点上注册。