在應用程序中使用腳本引擎可以大大增強程序的靈活性和可擴展性,類似MS Office和 VS.NET的宏功能。微軟.NET框架中Microsoft.vsa.dll中定義了腳本引擎的框架,而Microsoft.Visualbase.vsa.dll則定義了實現了VBA的腳本引擎。利用這兩個DLL可以定義自己的基於VBA.Net的腳本引擎,
Microsoft.vsa.dll中定義了一些框架接口,其中比較重要的接口包括
IVsaEngine 為腳本引擎接口,所有的腳本引擎使用該接口
IVsaSite 腳本引擎通訊接口,腳本引擎接受該接口來發布一些信息
IVsaItem 為腳本引擎相關資源的項目
IVsaCodeItem 為腳本代碼模塊
IVsaRefrenceItem 為腳本引擎使用的外部引用對象
IVsaGlobalItem 為腳本引擎使用的全局對象模塊
使用過程一般為實例化一個腳本引擎,將實現了IVsaSite的對象傳給腳本引擎對象,然後使用引擎的Items的CreateItem方法添加引用,代碼文本和全局對象.然後調用Compile方法編譯腳本引擎,使用RUN啟動引擎。
腳本引擎啟動後會在當前應用程序域中根據腳本代碼動態生成和加載了一個Assembly程序集,使用 IVsaEngine.Assembly可訪問動態產生的程序集。
Microsoft.VisualBase.vsa.dll實現了這些接口,並實現了基於VBA.Net語法的腳本引擎。
主要對象為 VsaEngine
本程序提供一個C#寫的演示程序,使用微軟.Net框架1.1,該演示程序提供了一個通用的使用腳本引擎的模塊,大家使用這個模塊就可以非常方便的使用VBA腳本引擎來擴展自己的應用程序。
演示程序下載地址:http://www.cnblogs.com/Files/xdesigner/VBAScriptDemo.rar
出處:XDesigner BLOG