comの参照アカウント

参照アカウント方式では、参照された側が死活管理を行っています。
参照する際に、「参照します」と通知し、参照が終了した際に「参照が終わる」と送ります。参照カウントが0になったときに終了処理を実行します。「オブジェクトを参照する」という通知は、.NETにより自動的に行われます。

参照を減らすという通知がMarshal.ReleaseComObjectです。

Application app = null;
try
{
      app = new Application();
      app.DisplayAlerts = false;
      Workbook book = null;
      try
      {
         book = app.Workbooks.Add();
         ((Range)(Worksheet)book.Worksheets[1]).Cells[1, 1].Value =
      book.SaveAs(Filename: @"c:¥temp¥abc.xlsx");
      book.Close(SaveChanges: false);
      app.Quit();
      MessageBox.Show("finish");
      }
      finally
      {
           if (book != null) Marshal.ReleaseComObject(book);
      }
}
finally
{
           if ( app != null )Marshal.ReleaseComObject(app);
}