JScriptからExcelを弄っていて(Excel→CSVとかCSV→Excelとか)、必要になったので関数を作ってみた。
非常に横着な実装をしています。
[JSArray2VBArray.js]

function JSArray2VBArray(arr) {
var vbs = new ActiveXObject("ScriptControl");
vbs.Language = "VBScript";
vbs.AddCode(
"Function makeArray\n"
+ "makeArray = Array(" + arr + ")\n"
+ "End Function\n");
var ret = vbs.Run("makeArray");
return ret;
}

VBArrayについて

VBArrayのインタフェース(JScriptランゲージリファレンスより)

  • コンストラクタ
    • new VBArray(safeArray)
      • 引数 safeArray には、VBArray 値を指定します。 → 説明になってない (>_<)
  • プロパティ
    • なし
  • メソッド
    • dimensions
    • getItem
    • lbound
    • toArray
    • ubound
詳細は、JScriptランゲージリファレンスとかそういうのを見て確認。Excelのオブジェクトブラウザを眺めてたら、どうやらVBArray( = SafeArray ? ) ってVariant型っぽいんだけれどもよくわからんです。。。

関連情報の検索キーワード

  • JScript VBArray
  • SafeArray