じゃんぬねっと日誌

ネタと雑記と時々プログラミング

目次

Blog 利用状況

ニュース

不況すぎる件。

スポンサードリンク

運営サイト

  • C# と VB.NET の入門サイト

書庫

C#, VB.NET で Excel が終了しない

C# または VB.NET で Excel が終了しないけど、どうしたらいいですか?
この手の質問は技術系のコミュニティで後を絶ちません。

C# または VB.NET で Excel.Application (というか COM) を扱う時は、
明示的に参照の解放をしなければなりません。
解放しないと、プロセス内に居座り続けるため Excel は終了しないです。
(タスク マネージャを見ると、Excel.exe がプロセスに残ったままになる)

とりあえず、参照はすべて変数に取りましょう。
必要ではなくなった時点で、System.Runtime.InteropServices.Marshal クラスにある、
ReleaseComObject メソッドで解放してください。

それと、例外発生時の対応として Try ~ Finally を使用して、
解放を保証することを強くお勧めします。
ベタに書くと以下の記事のように悲惨な状況になりますが、参考になると思います。

COM オブジェクトを解放する
http://jeanne.wankuma.com/tips/programing/releasecom.html

投稿日時 : 2005年12月20日 17:53

コメントを追加

# re: C#, VB.NET で Excel が終了しない 2005/12/21 1:09 じゃんぬ

だいたい、1 ヶ月に 1, 2 回くらい、
この手の話題の回答をしてますね...

そのたびに長いソースを書くのは正直つらいです。(^^;)

# re: C#, VB.NET で Excel が終了しない 2005/12/21 10:33 おぎわら

やたら多いので MP3 でも発表しときました。(^^;)

本番でサンプルのExcelが動かなかったのは内緒。
(ほかのデモをデバッグ中で止めてたのが原因 orz...)

# re: C#, VB.NET で Excel が終了しない 2005/12/21 14:01 じゃんぬ

> 本番でサンプルのExcelが動かなかったのは内緒。

うわっ! ダサっ!
とか言ってみるテスト。(^^;)

私も新人教育で

「こうすれば出来るジャン!」
「コンパイル エラー」
「・・・」

なことはあります。orz

# re: C#, VB.NET で Excel が終了しない 2005/12/22 16:59 aketi

dos窓から
tasklist /fi "imagename eq ex*"
とやるとexcelのプロセスが見れますな

タスクマネージャは見づらい

# re: C#, VB.NET で Excel が終了しない 2005/12/29 14:25 じゃんぬ

>明智さん
> タスクマネージャは見づらい

そうですか? 並べ替えすれば一発ですが?

タイトル  
名前  
URL
コメント