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: 複数行を挿入する方法

コメントを追加する

メールアドレスが公開されることはありません。 が付いている欄は必須項目です