シートを削除する際、こんなコードを実行します。
Application.DisplayAlerts = False 削除したいシート.Delete Application.DisplayAlerts = True
シートを削除しようとすると以下のダイアログが出てしまうため、
これを非表示(スキップ)して削除を実行するコードですね。

さてこのコードですが、たったこれだけの処理に3行も使うため、
書くのも微妙に面倒で、コードもちょっと邪魔です。
なのでこういったコードは、思い切って関数化してしまいましょう。
Sub シートを削除する(削除シート As Worksheet) Application.DisplayAlerts = False 削除シート.Delete Application.DisplayAlerts = True End Sub
' 使用例 Call シートを削除する(ThisWorkbook.Worksheets("○○"))
この程度の関数でも3行→1行というコード削減効果がありますし、
入力は「し + Ctrl+Space」で選択入力できるため書くのも簡単です。
地味ですが、
Application.DisplayAlerts = True 削除したいシート.Delete Application.DisplayAlerts = False
のようにTrue/Falseを書き間違うことがなくなるのもありがたいですしね。
こういった「簡単だけど書くのが面倒なコード」こそ、
作るのが簡単な割に使い勝手がよく、汎用関数化のメリットが大きいです。
数行の、あるいは1行のコードであっても、
ためらわずにSub/Functionに切り出していくとよいでしょう。
DisplayAlerts系で言うと、
Sub ブックを保存せず閉じる(対象ブック As Workbook) Application.DisplayAlerts = True 対象ブック.Close False Application.DisplayAlerts = False End Sub
この関数も結構便利です。
またDisplayAlerts以外にも、
- Unprotect → 処理 → Protect
- Visible=True → 処理 → Visible=False
- Hidden=False → 処理 → Hidden=True
あたりでも作っておくと楽な処理が結構あります。
見かけたら汎用関数にしてみてください。