使用 VBA 和 Visual Studio 工具进行 Office 开发

  • Jonathan Allen
  • 王波

2009 年 11 月 11 日

话题:.NET语言 & 开发架构

VBA 已到达尽头。尽管它配备在 Office 中并为高级用户广泛使用,但它的发展已停滞不前。有朝一日VSTA会取代 VBA,然而,目前它仍未受到足够的重视。甚至在 MSDN 上的专题空间已经关闭,仅保留相应博文。

这使得VSTO远离了那些基于 Office 的产品上进行.NET 开发的编程人员。除了可嵌入到文档中去,VSTO 项目还可以独立于 Office。这使得他们可以编译成标准的 DLL,通过 OneClick 或者标准的 MSI 包进行部署,并可以在多个文件之间进行共享。

多数高级用户并不想学习复杂的 VB.NET 或 C# 开发。类似的是,开发人员也不会重写他们公司所有的 VBA 资源,尤其是当前高级用户所维护的那部分。这意味着 VSTO 和 VBA 之间的互操作性在未来的几年变得至关重要。

正如 Beth Massi 解释的那样,整合 VBA 和 VSTO 有两种方式。最简单的就是使用应用程序在 VSTO 中调用 VBA 宏。因为该宏由函数名所限定,只有到运行时你才会知道,该宏是否丢失或者被误拼。

Beth Massi 描述的第二种方法就是从 VBA 宏调用 VSTO 代码。在这之前,必须设置 EnableVbaCallers 属性,使得 VSTO 代码注册 COM interopt。接着,你才可以使用 GetManagedClass 函数来访问 VSTO 方法和属性。

详情请登录 Beth Massi 的博客,参考使用 Excel 的两种解决方案

查看英文原文:Working with VBA and Visual Studio Tools for Office

.NET语言 & 开发架构