這裡程序首先創建了一個名為myVBAEngine的腳本引擎對 象,然後向它的VBCompilerImports列表添加了全局對象容器類型所在的名稱空間 MyVBAScript.Global。
然後程序創建一個文檔對象,並填充VB腳本引擎用的全局對象 容器,設置它的Window和Document的屬性值。
程序試圖加載應用程序所在目錄下的 demo.vbs文件中的內容作為默認加載的腳本代碼,若成功加載並編譯成功則調用 RefreshScriptMethodList來更新用戶界面中的可用腳本方法列表,定義 RefreshScriptMethodList函數的代碼如下
/// <summary>
/// 刷新“運行腳本”按鈕的下拉菜單項目,顯示所有可以執行的腳本方法名稱
/// </summary>
private void RefreshScriptMethodList()
{
// 情況腳本方法名稱列表
this.btnRunScript.DropDownItems.Clear();
// 獲得腳本引擎中所有的腳 本方法名稱
string[] names = myVBAEngine.ScriptMethodNames;
if (names != null && names.Length > 0)
{
// 將腳本方法名稱添加到“運行腳本”的下拉菜單項 目中
foreach (string name in names)
{
ToolStripMenuItem item = new ToolStripMenuItem();
item.Text = name;
item.Click += new EventHandler(ScriptItem_Click);
btnRunScript.DropDownItems.Add(item);
}
myStatusLabel.Text = "共加載 " + names.Length + " 個腳本方法";
}
else
{
ToolStripMenuItem item = new ToolStripMenuItem();
item.Enabled = false;
item.Text = "沒有加載任何腳本方 法";
btnRunScript.DropDownItems.Add(item);
myStatusLabel.Text = "沒有加載任何腳本方法";
}
}
這個函數的功能是,使用腳本引擎的ScriptMethodNames屬性獲得所有可用腳 本方法的名稱,然後添加到工具條的“運行腳本”的下拉菜單中,於是可以到達 如下的界面效果。