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

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

A 回答 (1件)

こんにちは。


>Set WshShell = Server.CreateObject("WScript.Shell")
ここの部分に、直接エクセルappをcreateobjectするように
してみたときに、どうなるのか、知らせて下さい。

30の数値は、ASPの中で制限できる部分かと思いますが、
もともと、マルチドキュメント仕様のエクセルアプリを、
スレッドで動作させるIISに使うのは、難しいかもしれませんね。
    • good
    • 0

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