黙々とC#

"In a mad world of VBA, only the mad are sane" 『VBAという名の狂った世界で狂っているというのなら私の気は確かだ』


ワークシートの削除

本記事は、Excel C# Script入門講座の1記事です。

ワークシートの削除

ワークシートの削除には、WorksheetオブジェクトのDeleteメソッドを使用します。

Deleteメソッドの戻り値

このメソッドは、bool値が返されます。

Deleteメソッドを実行した際に表示される確認用ダイアログ ボックスで、

  • ユーザーが [削除] をクリックした場合は true が返され、
  • ユーザーが [キャンセル] をクリックした場合は false が返されます。
注意

このメソッドは、デフォルトでは、即座にワークシートを削除するのではなく、削除の確認を求めるダイアログ ボックスを表示します。 ユーザーが[削除]を選択した場合にのみ、実際にワークシートが削除されます。

Deleteメソッドで即座にワークシートを削除したい場合には、下記サンプルコードに示すように、ApplicationオブジェクトのDisplayAlerts プロパティをfalseにすることで、ダイアログボックスの表示を回避することができます。

サンプルコード

//現在アクティブなシートを削除する
Excel.DisplayAlerts = false;
Excel.ActiveWorkbook.ActiveSheet.Delete();
Excel.DisplayAlerts = true;
//※ DisplayAlertsの設定は、スクリプト実行後のユーザー操作時にまで
//   影響が及ぶので必要なときだけfalseに設定し、デフォルト動作に戻している
//Sheet1を削除する。ユーザの選択に応じて処理を分ける場合
var sheet1 = Excel.Worksheets("Sheet1");
if(sheet1.Delete())
{
    //削除した場合の処理
}
else
{
    //削除しなかった場合の処理
}