JScriptでEXCELのヘッダ、フッタを編集する

仕事でEXCELのヘッダ、フッタ、プロパティを一括置換しなければならなかったので調べてみた。WSHは制約が多いので不便なのだが、仕事で楽をする程度のゆるい使い方に限定すれば結構便利。

/* 
 * MS-EXCELのヘッダ、フッタ、プロパティを編集する
 * headers: 左、中央、右ヘッダの内容の配列
 * footers: 左、中央、右フッタの内容の配列
 * properties: プロパティのDictionary
 */
function excel_setting(filename, headers, footers, properties) {
    var excel = WScript.CreateObject("Excel.Application");
    var workBook = excel.WorkBooks.Open(filename, 1);
    
    // シートを順番に取得
    for (var i = 1; i <= workBook.WorkSheets.Count; i++) {
        var sheet = workBook.WorkSheets.Item(i);
        // ヘッダの設定
        sheet.PageSetup.LeftHeader = headers[0];
        sheet.PageSetup.CenterHeader = headers[1];
        sheet.PageSetup.RightHeader = headers[2];
        // フッタの設定
        sheet.PageSetup.LeftFooter = footers[0];
        sheet.PageSetup.CenterFooter = footers[1];
        sheet.PageSetup.RightFooter = footers[2];
    }
    
    // プロパティの設定
    for (var key in properties) {
        var property = workBook.BuiltinDocumentProperties.Item(key);
        property.Value = properties[key];
    }
    
    workBook.Save();
    workBook.Close();
    excel.Quit();
}

ちなみに、ヘッダ、フッタには書式コードが使える。