■No35251に返信(たこさんの記事) > 問題は無い様に思えるのですが… Friend Sub WorkSheet_Select には、もう一つ問題点がありそうです。
> If Not check Then > _xlsWorkSheet = CType(xlsSheets.Add(), Excel.Worksheet) > xlsWorkSheet.Name = strSheetName > Else > _xlsWorkSheet = CType(xlsSheets(strSheetName), Excel.Worksheet) > End If これだと、「以前に _xlsWorkSheet が参照していた COM オブジェクト」が 解放されなくなってしまいます。
No35247 において、解説の最後に >> Dim y As Excel.Workbooks = x.Workbooks >> Dim z As Excel.Workbooks = x.Workbooks という実験コードを書いていますが、この場合、VBA や VBS とは異なり、 .NET においては y と z が別インスタンスとなることに注意が必要です。
この場合、COM の参照カウントは y と z それぞれに対して減じねばなりません。 y と z の両方を RelaseComObject した場合と、どちらか一方しか 解放しなかった場合とで、Excel の残存性を確認してみてください。