プロが教える店舗&オフィスのセキュリティ対策術

JScriptからWSHを使って、Excelファイル内の全ワークシートにアクセスしようと試みています。たとえば、

var excel=WScript.CreateObject("Excel.Application");
excel.Visible=false;
book=excel.Application.Workbooks.Open(ファイル名);
for(var sheet in book.Sheets)
{
WScript.Echo(sheet.Name);
}

と書いてみましたが、forループに入りません。
VBScriptでは上記のようなコードでOKらしいのですが、JScriptではNGなのでしょうか?

また、Office製品のActiveXオブジェクト(というのかどうかよくわからないのですが)を詳しく紹介しているサイトや書籍などをご存知でしたら教えてください。
MicrosoftのサイトにはTIPS程度しか載っていないので、独習できない状況です。

A 回答 (1件)

VB でのfor each は、コレクション(例えば、今回のSheets )にアクセスできますが、


JScript での for in では、コレクションにはアクセスできません。
JScript でコレクションにアクセスするには、Enumerator オブジェクトを使い以下の様にします。
var e = new Enumerator(book.Sheets);
for(;!e.atEnd();e.moveNext()){
WScript.Echo(e.item().Name);
}
しかしながら、
for(var i=1;i<=book.Sheets.Count;i++){
WScript.Echo(book.Sheets(i).Name);
}
のようにした方が通りが良いような気がします。
    • good
    • 0
この回答へのお礼

Enumeratorでもできなかった気がしたのですが、できてしまいました(ー"ー;)
こちらの思い違いだったのかもしれません。ありがとうございました。

お礼日時:2006/03/07 14:28

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!