C# と VB.NET の質問掲示板

わんくま同盟

ASP.NET、C++/CLI、Java 何でもどうぞ

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


(過去ログ 103 を表示中)
■61366 / )  Excelのシェイプを操作するとプロセスが残る
□投稿者/ kaorin (1回)-(2011/08/10(Wed) 15:59:58)

分類:[C#] 

C#からExcelを開き、Excelシート内に配置されたオートシェイプを操作すると
終了処理してもタスクマネージャーのプロセスに「Excel.EXE」が残ってしまいます。
切り分けした結果、下に示すコードを実行しなければ、Excelの起動 〜 終了は正常に動作し
プロセスにも「Excel.EXE」は残りません。

(起動 〜 終了)← この流れだと○
(起動 〜 オートシェイプ名変更 〜 終了)← この流れだと×

あと何をどのように解放してやればいいのでしょうか?

(耳が痛い質問内容とは重々承知しており、いろんなサイトを見て回りましたが、
解決に至りませんでした申し訳ございませんが宜しくお願い致します)


#region オートシェイプ名変更/void xlsShpCangeName
static public void xlsShpCangeName(Excel.Worksheet ctrlSheet, string ShapeName, string NewShapeName)
  {
    Excel.Shape shp = null;
    shp = ctrlSheet.Shapes.Item(ShapeName);

    // オートシェイプ名変更
    shp.Name = NewShapeName;

    //インスタンスの解放
    Marshal.ReleaseComObject(shp);
    shp = null;
  }
#endregion // void xlsShpCangeName

【環境】
WinXP_SP3
Microsoft Visual Studio 2010 Version 10.0.30319.1
Excel2003

返信 編集キー/


管理者用

- Child Tree -