のえら

技術備忘とかメモとか.間違いはつっこんでいただきたい所存.アフィリエイトはやっていません.

JScript作業メモ

厳格モードは使用可能
"use strict";
Excel定数は使えないので、自前で定義しておくと便利

wsfならでguid指定してExcel定数が使える

var Excel = {
  xlCSV: 6,    // csvフォーマット
  xlUp: -4162  // 上方向に検索
}

使うときは Excel.xlCSV のようにする。

ドロップされたファイルパスを取得する

WScriptオブジェクトのArgumentsプロパティにコレクションで格納される。

var filePaths = WScript.Arguments;
Excelオブジェクトを扱う
// ブックオブジェクト作成
var excelApp = new ActiveXObject("Excel.Application");
//  Excelを終了
excelApp.Quit();
// ブックオブジェクト解放
excelApp = null;
名前付き引数は使えない

引数の省略もできないので前から順に引数を渡す。
省略したい場合はnullを渡せばよさそう?
【構文: Object.PasteSpecial(Paste, Operation, SkipBlanks, Transpose)】

Worksheets(sheetName).Range("A1").PasteSpecial xlPasteAll, Transpose:=True
↓
Worksheets(sheetName).Range("A1").PasteSpecial(null, null, null, true);
Excelのシートをeachでぐるぐるしたい

JScriptだとfor inでコレクションにアクセスできないのでEnumeratorを使って対応してみる。

var sheets = new Enumerator(book.WorkSheets);
for(;!sheets.atEnd();sheets.moveNext()) {
  WScript.Echo(sheets.item());
}