Excelに画像ファイルを貼り付ける

仕事でWebアプリをテストする時、スクリーンショットを撮っておき最後にExcelで資料をまとめたりするんだけど、巨大なアプリだと画像をExcelに貼り付けるだけでめっちゃ時間がかかったりして、なんで僕がこんな仕事をしているんだ、とキレてるやつがいたんだけど、それはお前がへなちょこなせいなんだよ。

//
// makeimgxls.js
//
(function() {
	if (WScript.Arguments.length < 3) {
		WScript.Echo('usage: cscript //nologo makeimgxls.js c:\\imgs c:\\img.xls 15');
		return;
	}

	var imgdir = WScript.Arguments(0);
	var xlsfile = WScript.Arguments(1);
	var interval = WScript.Arguments(2);

	var files = (function (dir) {
		var files = [ ];
		var fso = new ActiveXObject('Scripting.FileSystemObject');
		var dir = fso.GetFolder(dir);
		for (var e = new Enumerator(dir.Files); !e.atEnd(); e.moveNext()) {
			var item = e.item();
			if (!/(png|jpeg|jpg|gif|bmp)$/.test(item.Name)) {
				continue;
			}
			files.push(item.Path);
		}
		return files;
	})(imgdir);

	var xl = new ActiveXObject('Excel.Application');
	try {
		var book = xl.Workbooks.Add();
		var sheet = book.Worksheets(1);

		for (var ii = 0, max = files.length; ii < max; ++ii) {
			var img = sheet.Pictures.Insert(files[ii]);
			img.Cut();
			sheet.Cells(ii * interval + 1, 1).Value = files[ii];
			sheet.Paste(sheet.Cells(ii * interval + 2, 1), img);
		}

		book.SaveAs(xlsfile);

	} finally {
		if (xl != null) {
			xl.Quit();
		}
	}
})();
c:\Temp\js>dir /b imgs
1.png
2.png
3.png
c:\Temp\js>cscript //nologo makeimgxls.js c:\temp\js\imgs c:\temp\js\img.xls 8
c:\Temp\js>c:\temp\js\img.xls
c:\Temp\js>

https://sites.google.com/site/hetappipm/hatena/20101206/imgxls.png