Office 脚本与 VBA 宏之间的差异
Office 脚本和 VBA 宏有很多共同点。 它们都允许用户通过易于使用的操作录制器自动执行解决方案,并允许编辑这些录制内容。 这两个框架旨在使那些可能不认为自己是程序员的人能够在 Excel 中创建小程序。
根本区别在于 VBA 宏是为桌面解决方案开发的,Office 脚本专为安全的跨平台基于云的解决方案而设计。
本文介绍 VBA 宏 (与一般) 和 Office 脚本中的 VBA 之间的main差异。 由于 Office 脚本仅适用于 Excel,因此这是此处讨论的唯一主机。
平台和生态系统
下表显示了哪些平台和产品支持哪些功能。
Excel 网页版 | Excel for Windows | Excel for Mac | Excel for iOS | 其他 Office 产品 | Power Automate | |
---|---|---|---|---|---|---|
Office 脚本 | 是 | 是 | 是 | 否 | 否 | 是 |
Office 脚本操作记录器 | 是 | 是 | 是 | 否 | 否 | 否 |
VBA 宏 | 否 | 是 | 是 | 否 | 是 | 否 |
Office 加载项 | 是 | 是 | 是 | 是 | 是 | 否 |
COM 加载项 | 否 | 是 | 否 | 否 | 是 | 否 |
VBA 旨在以桌面为中心。 VBA 可以与用户的桌面交互,以使用类似技术(如 COM 和 OLE)进行连接。 但是,VBA 没有方便的方法来调用 Internet。 Office 脚本使用适用于 JavaScript 的通用运行时。 这提供了一致的行为和可访问性,而不管用于运行脚本的计算机如何。 他们还可以对 一组有限的 Web 服务进行调用。
用户需要企业或教育版许可证才能使用或创建 Office 脚本。 有关支持许可证的完整列表,请参阅 平台支持。 VBA 内置于桌面版本的 Excel 中,无需特殊许可。
安全性
VBA 宏具有与 Excel 相同的安全许可。 这样,他们就能够完全访问你的桌面。 Office 脚本仅有权访问工作簿,而不能访问托管工作簿的计算机。 此外,任何 JavaScript 身份验证令牌都不能与脚本共享。 这意味着脚本既没有已登录用户的令牌,也没有用于登录外部服务的任何 API 功能,因此他们无法使用现有令牌代表用户进行外部调用。
管理员对 VBA 宏有三个选项:允许租户上的所有宏、不允许在租户上使用宏,或仅允许具有已签名证书的宏。 这种缺乏粒度使得很难隔离单个不良参与者。 目前,Office 脚本可以针对整个租户关闭,对于整个租户,或者对于租户中的一组用户,Office 脚本可以处于打开状态。 管理员还可以控制谁可以与他人共享脚本,以及谁可以在 Power Automate 中使用脚本。
覆盖
目前,VBA 提供了更完整的 Excel 功能,尤其是桌面客户端上可用的功能。 Office 脚本几乎涵盖了Excel web 版的所有方案。 此外,随着新功能在 Web 上首次亮相,Office 脚本将支持它们用于操作记录器和 JavaScript API。
Office 脚本不支持 Excel 级别 事件。 仅当用户手动启动脚本或 Power Automate 流调用脚本时,才会运行脚本。
Power Automate
VBA 没有 Power Automate 连接器。 所有受支持的 VBA 方案都涉及参与宏执行的用户。
Office 脚本可以通过 Power Automate 运行。 工作簿可以通过计划或事件驱动的流进行更新,使你无需打开 Excel 即可自动执行工作流。 试用 教程:从 Power Automate 流更新电子表格 ,开始了解 Power Automate。 还可以检查自动化任务提醒示例,以查看在实际场景中通过 Power Automate 连接到 Teams 的 Office 脚本。