C#のプログラムにマクロ機能をつける
ということで、C#のプログラム内からVBScriptなどのActiveScriptを呼べる機能を作ってみることにしました。
例として、フォームにテキストボックスとボタンを配置します。
後、参照設定でMicrosoft Script Control 1.0 というものを追加します。
後は以下のとおり。
private void button1_Click(object sender, System.EventArgs e) { MSScriptControl.IScriptControl con = new MSScriptControl.ScriptControlClass(); con.Language = "VBScript"; con.ExecuteStatement(textBox1.Text); }
とりあえずこれだけで、テキストボックスに
MsgBox "Hello"
とか入れれば、ボタンを押すとメッセージボックスが出ます。
この後は、C#側のクラスをAddObjectしてVBScriptから操作しようとしたのですが、「インターフェイスがサポートされていません」と例外が発生して実行できませんでした。
.NETじゃこれ以上は無理なのかな??