次のような状況があります。
Range formulaCells = range.SpecialCells(XlCellType.xlCellTypeFormulas);
そして、それらすべてを繰り返し処理したいと思います。しかし問題は、特定のセルの範囲オブジェクトが解放されないため、foreach ループでメモリ リークが発生することです。私は次のような従来の for ループでそれをやろうとしています:
for(int i = 1; i <= formulaCells.Count; i++)
{
Range cell = null;
try
{
cell = formulaCells.get_Item(i);
// do some work
}
catch(Exception e) {throw e;}
finally
{
If(cell != null)
{
Marshal.ReleaseCOMObject(cell);
cell = null;
}
}
}
ただし、get_Item() は行インデックスをパラメーターとして受け取るため、数式を持たないセルを通過します。私はそれを繰り返すことはできません。どうすればいいですか?