- 締切済み
WSH(Excel出力)の同時実行数の制限
WSHでExcel出力処理を行っているのですが、 同時実行数が30を超えると、Excelが不安定になるようで、 Set objBook = objExcelApp.Workbooks.Open("C:\xxx\zzz.xls", 0, False) の行で、 エラー:WorkbooksクラスのOpenプロパティを取得できません。 コード:800A03EC ソース: Microsost Office Excel というエラーが発生して異常終了してしまうのです。 同時実行数の上限など、また、それ以外の原因について、 ご存知の方がいらっしゃいましたら、コメント頂ければ幸いです。 ちなみに、同時実行数が30未満の場合は、正常終了するので、 コードの内容には、問題ないと思っております。 Excelのバージョンは、2003で、ファイルの構成は、 wsfファイル(yyy.wsf) vbsファイル(wsh_excel.vbs)の2ファイルを配置し、 以下のような形で、実行しています。 Set WshShell = Server.CreateObject("WScript.Shell") Set objBatch = WshShell.Exec(strCmd) ※ strCmdには、以下のような値が設定されます。 cmd.exe wscript.exe "C:\xxx\yyy.wsf" ■ yyy.wsfの内容 <?xml version="1.0" encoding="shift_jis" ?> <job id="zzz"> <script language="VBScript" src="wsh_excel.vbs"/> <script language="VBScript"> Call Excel_Main() </script> </job> ■ wsh_excel.vbsの内容(抜粋) Sub Excel_Main() Set objExcelApp = Wscript.CreateObject("Excel.Application") Set objBook = objExcelApp.Workbooks.Open("C:\xxx\zzz.xls", 0, False) : : End Sub
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- super_neo
- ベストアンサー率100% (1/1)
こんにちは。 >Set WshShell = Server.CreateObject("WScript.Shell") ここの部分に、直接エクセルappをcreateobjectするように してみたときに、どうなるのか、知らせて下さい。 30の数値は、ASPの中で制限できる部分かと思いますが、 もともと、マルチドキュメント仕様のエクセルアプリを、 スレッドで動作させるIISに使うのは、難しいかもしれませんね。