|
■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ボタンでも同じなので回避できませんでした。
|