本帖最后由 onlycxb 于 2018-2-25 09:26 编辑
与VBA一样,为VSTO编写的代码由独立的虚拟机(CLR)执行,该虚拟机位于Microsoft Office应用程序内。但是,与将代码存储在文档文件本身中的 VBA不同,使用VSTO编写的程序存储在通过自定义属性与文档关联的单独CLI程序集中。
如果属性存在,Microsoft Office托管CLR并将该属性中指定的程序集加载到以文档名称命名的单独的appdomain中。 除了支配VBA宏的基于数字签名的权限模型外,VSTO应用程序还受到.NET Framework 代码访问安全限制。
VSTO开发通常使用专业程序员使用的Visual Studio进行。每个调试会话都会重新启动Office应用程序。VBA通常是在Office应用程序内部开发的,不需要特殊工具。VBA还有一个宏记录器,可以从用户操作中生成VBA代码,这对非专业程序员很有用。
与JavaScript API比较 Office扩展或插件可以使用VSTO和JavaScript API技术开发。VSTO是Microsoft .NET技术,使用JavaScript API技术的加载项使用JavaScript,HTML和CSS。 JavaScript API加载项在iOS,手机,平板电脑和Windows等平台上具有高度的可移植性。完整的授权流程和周期非常简单,并且可以在加载项中进行维护。在使用图表,剪贴画和地图的JavaScript API加载项中,交互式可视化是可行的。 JavaScript API插件开发是一项相对较新的技术,并且随Office 2016一起推出。API和功能有限并且受支持。 VSTO可以完全访问所有Office对象模型。在Office客户端上执行所有操作是可行的。需要访问本地机器文件系统和其他应用程序的功能在VSTO中是可行和容易的。可以使用C#或任何其他CLI编程语言来创建新的Office加载项。
|