VBScriptやVBAからJScriptのArrayオブジェクトのインデックスアクセス(その3)
ラッパ関数を介して、インデックスアクセスするのが、お勧めです。
Set sc=CreateObject("ScriptControl")
sc.Language="JScript"
sc.AddCode "function set(a,k,v){a[k]=v;}function get(a,k){return a[k];}"
参照は、
x=a[k]
の代わりに、
x=sc.CodeObject.get(a,k)
または、
x=sc.Run("get",a,k)
設定は、
a[k]=x
の代わりに、
call sc.CodeObject.set(a,k,x)
または、
call sc.Run("set",a,k,x)
性能は、o(n)なので、n=a.length が大きくても、使えます。
また、Run()よりCodeObjectのほうが速くてよいでしょう。
« VBScriptやVBAからJScriptのArrayオブジェクトのインデックスアクセス(その2) | トップページ | VBScriptやVBAの配列に不定数の要素を追加するには? »