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
お礼
tkf-さま ご回答ありがとうございます。 wsfのSCRIPT 要素内に VBScript のコードを 記述することができるんですね。 今まで2ファイルに分けておりました。 大変勉強になりました。 ありがとうございました。