Vba: プロンプトや警告を表示せずにシートを削除する方法
VBA のDeleteメソッドを使用してブック内の特定のシートを削除すると、Excel はシートを削除してもよいかどうかを尋ねるプロンプトを表示します。
ただし、VBA で次の構文を使用すると、プロンプトや警告ボックスを表示せずにシートを削除できます。
SubDeleteSheets ()
'turn off display alerts
Application.DisplayAlerts = False
'delete Sheet1
Sheets(" Sheet1 ").Delete
'turn back on display alerts
Application.DisplayAlerts = True
End Sub
この特定のマクロは、プロンプトや警告ボックスを表示せずにSheet1というシートを削除します。
Application.DisplayAlerts=False行は、Excel のすべての表示アラートをオフにするように VBA に指示します。
次に、 Deleteメソッドを使用して特定のシートを削除します。
次に、 Application.DisplayAlerts=Trueを使用して、表示アラートを再度有効にします。
次の例は、この構文を実際に使用する方法を示しています。
例: VBA を使用してプロンプトや警告を表示せずにシートを削除する
3 つのシートを含む次の Excel ワークブックがあるとします。
ここで、 Sheet1というシートを削除するマクロを作成するとします。
次のマクロを作成するとします。
SubDeleteSheets ()
'delete Sheet1
Sheets(" Sheet1 ").Delete
End Sub
このマクロを実行すると、このシートを削除してもよいかどうかを尋ねるメッセージが表示されます。
ただし、次のマクロを作成すると、プロンプトを表示せずにSheet1を削除できます。
SubDeleteSheets ()
'turn off display alerts
Application.DisplayAlerts = False
'delete Sheet1
Sheets(" Sheet1 ").Delete
'turn back on display alerts
Application.DisplayAlerts = True
End Sub
このマクロを実行すると、 Sheet1というシートが自動的に削除され、プロンプトは表示されません。
Sheet1 は削除され、他の 2 つのシートはそのまま残っていることに注意してください。
追加リソース
次のチュートリアルでは、VBA で他の一般的なタスクを実行する方法について説明します。
VBA: ワークブック内のシート数を数える方法
VBA: 別のブックからデータを抽出する方法
VBA: 複数行を挿入する方法