シートを削除するにはWorksheetオブジェクトのDeleteメソッドを使います。次のコードはアクティブシートを削除します。
Sub Sample04() Activesheet.Delete End Sub
実に簡単です。ところが厄介なことに、データを入力したシートを削除しようとすると「本当に削除してもいいの?戻せないよ?いいの?」と念を押されます。手作業でしたら[削除]ボタンをクリックすればいいのですが、マクロで一連の処理を行うとき、いちいちこのメッセージで止まっては困ります。このメッセージを出さないで削除する方法はないのでしょうか。
もちろんあります。Excelでは多くの確認メッセージが表示されます。この確認メッセージを全て出さなくするには、ApplicationオブジェクトのDisplayAlertsプロパティにFalseを設定します。次のコードは確認メッセージを出さないでアクティブシートを削除します。
Sub Sample04_2() Application.DisplayAlerts = False ActiveSheet.Delete Application.DisplayAlerts = True End Sub
確認メッセージを抑止するDisplayAlertsプロパティと、画面の更新を抑止するScreenUpdatingプロパティは、もはやTIPSとも呼べない基本中の基本です。知らなかった人は、この機会に暗記しましょう。