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 的两种解决方案。
活动推荐:
2023年9月3-5日,「QCon全球软件开发大会·北京站」 将在北京•富力万丽酒店举办。此次大会以「启航·AIGC软件工程变革」为主题,策划了大前端融合提效、大模型应用落地、面向 AI 的存储、AIGC 浪潮下的研发效能提升、LLMOps、异构算力、微服务架构治理、业务安全技术、构建未来软件的编程语言、FinOps 等近30个精彩专题。咨询购票可联系票务经理 18514549229(微信同手机号)。
评论