Excelに限らずInterop操作を行う場合には決まり事があります。 COMオブジェクトの参照カウントをきっちり解放する。 これを行わないと、処理が正常に行われていても プロセスが残ったままになります。 COMの参照カウントを解放するには以下のクラスを利用します。 Marshal.ReleaseComObject(object) ReleaseComObjectメソッドに該当するCOMオブジェクトを渡すと そのオブジェクトの分の参照カウントが解放されます。(つまりカウントが減ります。) 最終的に、全COMオブジェクトにて参照カウント数が0になった後で Excelを終了すると、ちゃんとプロセスが消えてくれる事になります。 でも実際に処理を書いてみると、これがめっちゃ大変です。 参照カウントを減らす為には、利用したオブジェクト全部を保持しておかないと駄目だからです。 Dim xlBooks