Windows Scriptドキュメントと、Excel VBAのヘルプを見ながら書き書き。
ついでにシート名もファイル名にそうかたちに変更。
copy_and_merge(); function copy_and_merge() { var excel = WScript.CreateObject("Excel.Application"); var fso = new ActiveXObject("Scripting.FileSystemObject"); wb_dest = excel.Workbooks.Add(); var dir_inFiles = fso.GetFolder(".\\data").files; var enume_Obj = new Enumerator(dir_inFiles); for (var i = 0; !enume_Obj.atEnd(); enume_Obj.moveNext()) { var wb = excel.WorkBooks.Open(enume_Obj.item()); WScript.Echo(wb.Name); // ついでにシート名もファイル名にそうかたちに変更 wb.WorkSheets(1).Name = wb.Name.split(":")[1].split(")")[0]; wb.WorkSheets(1).Copy(wb_dest.WorkSheets(1)); wb.close(); } // フルパスじゃないとユーザーホームに作成されちゃったので wb_dest.saveAs(fso.GetAbsolutePathName(".") + "\\merged.xls"); wb_dest.close(); excel.quit(); // FileSystemObjectはcloseメソッドがないし、閉じなくていいみたい }