![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?8acaa2e)
Excelで入力された複数の台帳から集計する帳票を出力するシステムがあります。
質問の内容は単独で帳票を出力した場合はうまくいきますが、2台のPCから同時に
帳票作成処理を走らせたときに、片方は延々と読み込み中から止まった状態になります。
サーバのメモリを見ると、止まっているとみられるExcel.EXEが残っておりゾンビ状態になっております。
これを2台以上のPC(8台程)で同時にやるとメモリリークが発生してしまい帳票自体が作成できなくなってしまいました。その際はサーバの再起動で解決致しましたがそう何度も再起動が出来る環境ではないので何とか同時に実行出来る方法はないでしょうか。同時に出来ない場合は処理が終わるまで他のPCからの処理はウェイトをかけれればよいと考えています。
環境を以下に記します。
OS:WindowsServer2008Standard 32bit SP1
Webサーバ:IIS7
言語:asp(vbs)
帳票作成自体の処理は以下のようになっております。
Dim objExcelApp
Err.Clear
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
Else
(…処理)
objExcelApp.Quit
Set objExcelApp = Nothing
End If
以上、解決策があればよろしくお願いいたします。
No.1ベストアンサー
- 回答日時:
どういう仕組みなのか質問の内容だけでは不明ですが、Excelのプロセスが残る理由はなんとなく見えます
objExcelApp.Quit
Set objExcelApp = Nothing
エラー時にも入れてください
この回答への補足
回答ありがとうございます。
しかしエラー処理に入れてもエラー処理の方には入ってくれず、延々と読込中の状態のままです。仕組みとしてはWebシステムであり、入力された台帳から集計する項目(年月等の情報)を選択して絞り込み、雛形のxlsファイルにデータベースから絞り込んだ値を埋め込んで最終的にファイル出力する仕組となっています。
投稿している間も引き続き調べておりましたが、aspからのexcelの呼び出しはmicrosoftでは推奨されていないようでした。
http://support.microsoft.com/kb/257757/ja
Open XMLというものを使用すればいいのかなと思いましたが、フォーマットがxlsですので対象外のようです。
IISからのタイムアウト等を設定しても読み込み中の状態は解消されないので何とかゾンビ状態は回避したいです。ちなみに同時実行時以外はしっかりプロセスも終了しメモリも解放されます。1~2秒の間が入った場合も正常でした。
すいません自己解決しました。
並列処理は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
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(クラウドサービス・オンラインストレージ) Onedriveで実現したい事。2台のPC間で。 2 2023/04/10 20:42
- Visual Basic(VBA) 【VBA】印刷マクロのループ処理が反映されません 3 2022/08/09 02:15
- デスクトップパソコン 「自動修復でPCを修復できませんでした」と表示されPCが起動しないのですが対処法はありますか? 5 2022/05/13 09:16
- Visual Basic(VBA) 3つのプロシージャをまとめたら実行時エラー発生で対応不能 6 2022/05/17 01:47
- レトロゲーム 小学生の頃にやっていた未クリアのゲームをプレイしたい 3 2023/05/07 23:37
- Visual Basic(VBA) Excel-VBAでのファイルの開き方 4 2023/02/14 11:01
- Visual Basic(VBA) ExcelからAccessのテーブルに書き込む時に時間がかかる 1 2022/10/14 20:38
- 事務・総務 帳票類やデータがありません。法人成り。 解体業の会社で現場作業員 兼 事務員として勤めているのですが 3 2023/06/02 13:27
- Visual Basic(VBA) vbaエクセルマクロについて あるデータを作成し、デスクトップに.xlsx形式で保存するマクロを作成 2 2023/03/02 18:54
- Visual Basic(VBA) エクセルのマクロについて教えてください。 7 2023/07/04 09:18
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
onedrive にexcelファイルをア...
-
キヤノン アソビカメラ iNSPiC ...
-
phpのファイルがブラウザで開か...
-
お世話になります。 Windows Up...
-
VB.NET 2017の勉強中です。 今...
-
Windows10にデュアルブートでXP...
-
Wi-Fiのパスワードが指定なしと...
-
VBAのRegExpで後方一致/不一致...
-
W10環境変数の%記号
-
aspxをhtmlに変換する方法について
-
”KINGSOFT WPSのVBエディタ画面...
-
図に入っている文字をセルに書...
-
エクセルに張り付けた写真のフ...
-
Windowsで複数のファイルを同じ...
-
SPO2測定
-
高校1年生情報の問題について。
-
エクセルのマクロについて教え...
-
インドe-Visa 承認書のApplicat...
-
SPIの非言語の割合と比が難しく...
-
SPIの対策は参考書でやるべきか?
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルVBA 宣言Dimの場所
-
ソケット通信で同時受信の制限?
-
vbscriptの変数宣言
-
名前が二重に定義されています
-
EXCEL VBA API宣言でコンパイル...
-
VBSでIEを起動し、拡大率を変更...
-
VBSにてサーバー中のエクセルフ...
-
式はメソッドではありませんと...
-
ハンゲーム
-
COBOLのPERFORM文
-
標準モジュールPublic宣言変数...
-
golang 空文字判定について
-
TCPサーバ bind関数のエラーに...
-
CreateObjectの同時実行時について
-
ACCESSのAutoKeysマクロでアク...
-
イメージ表示
-
エクセル同一セル内の指定文字...
-
ダブルクォーテーションの吐き出し
-
十進BASICについて
-
C# try-catch でcatchに飛ばす方法
おすすめ情報