JScript で Excel
Excel のシート名を列挙する
lesson001.js
実行結果
var objExcel = WScript.CreateObject("Excel.Application");
objExcel.Visible = true;
objExcel.DisplayAlerts = false; //警告メッセージをOFF//ブックを読み取り専用で開く
var book = objExcel.Workbooks.Open(WScript.Arguments(0));for (var i = 1; i <= book.Sheets.Count; i++)
{
WScript.Echo(book.Sheets(i).Name);
}objExcel.Quit();
objExcel = null;
なぜか、1行余分に出力される...
C:\>cscript c:\study\jscript\chapter004\lesson001.js c:\study\Book1.xls //nologoSheet1
Sheet2
Sheet3
これでも OK
lesson002.js
実行結果
var objExcel = WScript.CreateObject("Excel.Application");
objExcel.Visible = true;
objExcel.DisplayAlerts = false; //警告メッセージをOFF//ブックを読み取り専用で開く
var book = objExcel.Workbooks.Open(WScript.Arguments(0));var sheet = new Enumerator(book.Sheets);
for (; !sheet.atEnd(); sheet.moveNext())
{
WScript.Echo(sheet.item().Name);
}objExcel.Quit();
objExcel = null;
C:\>cscript c:\study\jscript\chapter004\lesson002.js c:\study\Book1.xls //nologoSheet1
Sheet2
Sheet3
これは、だめ
lesson003.js
実行結果
var objExcel = WScript.CreateObject("Excel.Application");
objExcel.Visible = true;
objExcel.DisplayAlerts = false; //警告メッセージをOFF//ブックを読み取り専用で開く
var book = objExcel.Workbooks.Open(WScript.Arguments(0));for (sheet in book.Sheets)
{
WScript.Echo(sheet.item().Name);
}objExcel.Quit();
objExcel = null;
C:\>cscript c:\study\jscript\chapter004\lesson003.js c:\study\Book1.xls //nologo
「VB でのfor each は、コレクション(例えば、今回のSheets )にアクセスできますが、
JScript での for in では、コレクションにはアクセスできません。」そうです。