「 Excel 」一覧

JScriptでExcelブックを操作

Windows Scripting Host では、デフォルトで VBAライクな VBScript と JavaScript ライクな JScript が動きます。ActiveXObject クラスを使うと、Excel.Application のようなOLEオブジェクトも扱えるので、JScript で Excel マクロ的なものも書けます。

Excel ブックと一体で扱いたい時は相変わらず VBA しか選択肢がないのですが、大量ファイルを一括処理するバッチなどは JScript で書いたほうが何かとやりやすいです。

というわけで備忘録的サンプル。 

/* WSH Script: JScriptからExcelブックを操作する例 */
/* 全シートのヘッダ/フッタを全部消す              */

/**
 * Operation for a worksheet
 * -- Erace all headers and footers of the sheet.
 */
function sheetOp(sheet) {
    var ps = sheet.PageSetup;

    ps.PrintArea = "";
    ps.LeftHeader = "";
    ps.CenterHeader = "";
    ps.RightHeader = "";
    ps.LeftFooter = "";
    ps.CenterFooter = "";
    ps.RightFooter = "";

}


/**
 * Get ActiveX Excel object
 */
function getExcelApplication() {
    var excel = new ActiveXObject("Excel.Application");
    return excel;
}

/**
 * main loop
 */
function main(filename, sheetOp) {
    var excel = getExcelApplication();
    var book = excel.Workbooks.Open(filename, true, false);
    try {
        var sheets = book.Worksheets;
        for (var i = 1; i <= sheets.Count; i++) {
            sheetOp(sheets.Item(i));
        }
    } finally {
        excel.DisplayAlerts = false;
        book.Close(true);
        excel.Quit();
    }
}

var args = WScript.arguments;
var filename = args(0);
main(filename, sheetOp);