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

わんくま同盟

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

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


(過去ログ 161 を表示中)
■93100 / )  Re[2]: フォームを閉じるとエラー
□投稿者/ じょこびっち (31回)-(2019/11/20(Wed) 09:31:34)
No93089 (とっちゃん さん) に返信
> まずは
> 「デバッガ」
> を利用して、デバッグ実行し、どこで例外が発生しているかを突き止めましょう。
>
> 場所がわかったら次は、なぜNullになってしまうかの原因を探し
>
> 最終的に Nullを参照してしまうことがないように修正します。

xボタン処理の中にオブジェクトを解放する一文を記述しており、
ここにブレークポイントを置いてみたところworkBookがnullになっていました。

現在作っている物はフォームからエクセルを立ち上げる事ができるようになっています。
フォームからエクセルを立ち上げてフォームを閉じると問題はないのですが
フォームからエクセルを立ち上げずに閉じるとworkbookがnullになっていたようです。
これを回避するにはどうすればいいでしょうか?

private void Form1_Load(object sender, EventArgs e)
{
// Excel
excelApp = Activator.CreateInstance(Type.GetTypeFromProgID("Excel.Application"));
}

private void Form1_FormClosed(object sender, FormClosedEventArgs e)
{
if (excelApp != null)
{
if (workBook != null)
{
workBook.Saved = true;
}
//excelApp.Quit();
}
System.Runtime.InteropServices.Marshal.ReleaseComObject(excelApp);
}


No93093 (KOZ さん) に返信

> X ボタンで閉じられるのであれば
>
> private void Close_Click(object sender, EventArgs e)
> {
> BeginInvoke((Action)Close, null);
> }
>
> で回避できる可能性があります。

Xボタンでも同じなので回避できませんでした。
返信 編集キー/


管理者用

- Child Tree -