• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:CreateObjectの同時実行時について)

CreateObjectの同時実行時について

このQ&Aのポイント
  • Excelで入力された複数の台帳から集計する帳票を出力するシステムがあります。
  • 同時に複数のPCから帳票作成処理を走らせると、メモリリークが発生して帳票が作成できなくなる問題が発生しました。
  • サーバの再起動で解決することはできますが、再起動が頻繁に必要な環境ではありません。同時に実行できる方法を探しています。

質問者が選んだベストアンサー

  • ベストアンサー
  • mindatg
  • ベストアンサー率48% (110/227)
回答No.1

どういう仕組みなのか質問の内容だけでは不明ですが、Excelのプロセスが残る理由はなんとなく見えます objExcelApp.Quit Set objExcelApp = Nothing エラー時にも入れてください

groupkoei
質問者

お礼

すいません自己解決しました。 並列処理はexcelを仕様する方法では無理そうなので、排他処理で行う事にしました。 Dim objExcelApp Err.Clear 'アプリケーションのロック Application.Lock Set objExcelApp = Server.CreateObject("Excel.Application") If Err.number <> 0 Then   ' エラー処理   Response.write "<font color=red>"   Response.write "Excelを起動できませんでした<br>"   Response.write "エラー:" & Err.Description & "<br>"   Response.write "</font><br>" & vbCrLf   fncPrintModule = False   objExcelApp.Terminate   'ロック解除   Application.Unlock Else   (…処理)   objExcelApp.Quit   Set objExcelApp = Nothing   'ロック解除   Application.Unlock End If

groupkoei
質問者

補足

回答ありがとうございます。 しかしエラー処理に入れてもエラー処理の方には入ってくれず、延々と読込中の状態のままです。仕組みとしてはWebシステムであり、入力された台帳から集計する項目(年月等の情報)を選択して絞り込み、雛形のxlsファイルにデータベースから絞り込んだ値を埋め込んで最終的にファイル出力する仕組となっています。 投稿している間も引き続き調べておりましたが、aspからのexcelの呼び出しはmicrosoftでは推奨されていないようでした。 http://support.microsoft.com/kb/257757/ja Open XMLというものを使用すればいいのかなと思いましたが、フォーマットがxlsですので対象外のようです。 IISからのタイムアウト等を設定しても読み込み中の状態は解消されないので何とかゾンビ状態は回避したいです。ちなみに同時実行時以外はしっかりプロセスも終了しメモリも解放されます。1~2秒の間が入った場合も正常でした。

関連するQ&A

専門家に質問してみよう