ワークシートを削除する「Deleteメソッド」の使い方を解説します。
ワークシートを削除する場合は、
[削除するシート].Delete
を実行します。
サンプルコードは以下の通りです。
' アクティブシートを削除 ActiveSheet.Delete ' 指定番目のシートを削除 Worksheets(3).Delete ' 指定名称のシートを削除 Worksheets("売上データ").Delete ' 他ブックのシートを削除 Workbooks("○○.xlsx").Worksheets("△△").Delete
削除時に表示されるメッセージをOFFにする
上記のコードを実行すると、
シートを削除すると元に戻せません。また、一部のデータが削除される可能性があります。それでも問題がない場合は、[削除] をクリックしてください。 |
このようなメッセージが表示されます。
せっかくのマクロなのに、ボタンを押すまで次に進まなくなるのは困る場面が多いでしょう。
このメッセージを表示せずにシートを削除する場合は、以下のように記載します。
Application.DisplayAlerts = False Worksheets("売上データ").Delete Application.DisplayAlerts = True
Application.DisplayAlertsにTrue/Falseを渡すことで、警告メッセージのONOFFを切り替えることができます。
これをOFFにしてからシートを削除をすれば、メッセージで止まらないマクロできます。
警告メッセージがOFFのままではその他の危険を検知できなくなりますので、
削除後はすみやかにONに戻してください。
この「警告メッセージのONOFFでコードを囲む」手法は、
「ブックを保存せずに閉じる」など、いろいろな場面で出てきますので覚えておきましょう。
いちいち書くのが面倒な場合は、
だf | Application.DisplayAlerts = False |
---|---|
だt | Application.DisplayAlerts = True |
などのように、ユーザー辞書に変換を登録しておくと便利です。
Worksheet クラスの Delete メソッドが失敗しました。
このメッセージが表示され、削除が失敗することがあります。
- ブックの保護が有効になっている
- ブックの共有が有効になっている
この2つが主な要因と思われますので、確認してみてください。
保護を解除してから削除するには、
Application.DisplayAlerts = False Worksheets("売上データ").Unprotect Worksheets("売上データ").Delete Application.DisplayAlerts = True
このコードを実行すればよいです。
PW付きの保護である場合は、
Worksheets("売上データ").Unprotect Password:="設定したPW"
でOKです。