ワークシートが削除できない?

C# .NET というか Excel ライブラリの話。使っているのは Microsoft Excel 10.0 Object Library 。

((Excel._Worksheet)Excel.Workbook.Sheets[?]).Delete() がなぜかビープ音を出して終了する。コード的に1シートだけ残して他シートを全て削除するループなので、無限ループになってしまってうるさいことこの上ない。

実のところ、動作確認のとれたコードをコピー&ペーストして使っていたから何が問題なのかさっぱりわからなかった。確かに変数名くらい変えたけどそれって問題か、と。

ちょこちょこ検索した結果、削除時の確認ダイアログが出ている可能性が見つかったので Excel._Application.DisplayAlerts を false にしてみた。

びっくりするほどあっさり解決。ひどいよ。