在应用程序中使用脚本引擎可以大大增强程序的灵活性和可扩展性类似MS Office和 VSNET的宏功能微软NET框架中Microsoftvsadll中定义了脚本引擎的框架而MicrosoftVisualbasevsadll则定义了实现了VBA的脚本引擎利用这两个DLL可以定义自己的基于VBANET的脚本引擎
Microsoftvsadll中定义了一些框架接口其中比较重要的接口包括IVsaEngine 为脚本引擎接口所有的脚本引擎使用该接口IVsaSite 脚本引擎通讯接口脚本引擎接受该接口来发布一些信息IVsaItem 为脚本引擎相关资源的项目IVsaCodeItem 为脚本代码模块IVsaRefrenceItem 为脚本引擎使用的外部引用对象IVsaGlobalItem 为脚本引擎使用的全局对象模块
使用过程一般为实例化一个脚本引擎将实现了IVsaSite的对象传给脚本引擎对象然后使用引擎的Items的CreateItem方法添加引用代码文本和全局对象然后调用Compile方法编译脚本引擎使用RUN启动引擎
脚本引擎启动后会在当前应用程序域中根据脚本代码动态生成和加载了一个Assembly程序集使用 IVsaEngineAssembly可访问动态产生的程序集
MicrosoftVisualBasevsadll实现了这些接口并实现了基于VBANET语法的脚本引擎
主要对象为 VsaEngine
本程序提供一个C#写的演示程序使用微软NET框架该演示程序提供了一个通用的使用脚本引擎的模块大家使用这个模块就可以非常方便的使用VBA脚本引擎来扩展自己的应用程序
演示程序下载地址
出处XDesigner BLOG