- 締切済み
EXCELのプロセスが残ってしまう
VBからExcelを起動し、ごく稀にExcelのプロセスが残ってしまう場合があります。全く同じ条件で実行した場合、残る時と残らない時とありを悩ませています。 いろいろな対策方法が検索できましたが、解決しませんでした。 また、このようにExcelプロセスが残った際、IISの動作がおかしくなっているのか、「CGIエラー」を返します。ただし、exeなど実行系ファイルを実行せず、XXX.HTMなどは表示できます。 VBで記述したexeは、CGI系のアプリとしてブラウザから実行されています。 対処方法ご存知でしたら、教えて下さい。 環境 NT4サーバ+SP6a Excel97 VB5.0
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- kakusuke
- ベストアンサー率36% (95/259)
プロセスが閉じるまで タイマーとかで APIでウィンドウハンドルを取得し、 監視するしかないかもしれないですね。 ちなみにQUITメソッド、 うまくいかないことが多々有ります。 QUITでうまくいかなかったら、 ためしに VisibleをTrueにしてみたらどうでしょう?
- kakusuke
- ベストアンサー率36% (95/259)
VB側からEXCELを起動する際のコーディングを 書かなくては、誰一人答えられないと思いますが。 ただ、 ゲットオブジェクトで起動した場合、 (set XXX = GetObject(app,cls)) オブジェクトの開放だけ (set XXX = nothing) をしててもプロセスは閉じませんよ。 とだけ。
補足
kakusukeサン、すみません。コーディングは下記のようにしています。 'オブジェクトの定義 Set ExcelObj = CreateObject("Excel.Application") : 'テンプレートのOPEN ExcelObj.Workbooks.Open FileName:=Path, ReadOnly:=False, IgnoreReadOnlyRecommended:=True : '値の設定 RangeBuff(x, y) = "値" : 'Excelへの反映 With ExcelObj .Range(.Cells(a, b), .Cells(c,d).FormulaR1C1 = RangeBuff : 'Excelの終了 ExcelObj.ActiveWorkbook.Close (False)ExcelObj.Quit Set ExcelObj = Nothing といった形でコーディングしています。 イントラネットで利用しており、1日に多数起動されますが、たまにExcelプロセスのみ残ってしまいます。 どうか回避方法ご存知でしたら教えて下さい。
お尋ねの件に、直接の答えになってないかも知れないのですが、もしかして。。というぐらいの気持で聞いてください。 よく言うスパイウエアですが、あれは別にアダルトサイトに行かなくても、うっかり知らない間にインストールしている事があり、本人も自覚がないまま過ごす事があるのですよ。かく言う私もそうでした。 色んな症状がありますが、その症状の1つに、履歴が消えないという事があったのです。でも消える事もあったのです。パソコンの調子を狂わされます。 でそのエクセルのプロセスが残っていると言うのが、もしかしてそうかも。。と思ったのですが。 DLしてスキャンされてみたら如何でしょうか? で削除して、おかしい?という事があった場合は、リカバリボタンをクリックすると戻ります。 くれぐれも慎重にされてください。
補足
>ためしにVisibleをTrueにしてみたらどうでしょう? でもダメでした。