Microsoft Script Control

Microsoft Script Control.
(以下COMなんかぜんぜんしらんけど、なんとなく使ってる人間が書いています。)

Microsoft Script Controlってなんだ?

COM経由でJScriptVBScript、あるいはほかの言語を実行できる嬉しいCOM。かなり面白い!

at a glance

VBAで参照設定すればこんなふうに使えます。

Sub script()
    Dim sc As New ScriptControl
    sc.Language = "JScript"
    sc.AddCode "function hoge(){return (arguments.length);}"
    Debug.Print sc.Run("hoge", 1, 2, 3) ' Prints "3"
End Sub

実行した内部コードでエラーがおきた場合はOn Errorで拾うしかなさそう。

COMオブジェクトを渡してみよう

Sub script()
    Dim sc As New ScriptControl
    sc.Language = "JScript"
    sc.AddCode "function hoge(x){return x.Name;}"
    Debug.Print sc.Run("hoge", ThisWorkbook) ' Workbook.Nameが返却される
End Sub

これの何が嬉しいかというと、Excel中でJScriptをいきなり使えることです。

セルに直接コードをほうりこんでもよし、気分転換にVBAからJScriptを使用してもよし、便利ですね。