マクロ基礎講座VBA シートを削除する方法
VBA シートを削除する方法
VBA でシートを削除する
いらないシートを削除する
作業用のシートを作ったりすることがあります。
作業が終わってシートを削除したい時にはどのようなコードを書けばいいのでしょうか。
ワークシートを削除するには、ワークシートの worksheet オブジェクトの delete メソッドを使って以下のように書くことができます。
シートを削除
1.先頭( 一つ目)のシートを削除するには、
Sheets(1).Delete または Worksheets(1).Deleteのように書くことができます。
2. 名前で指定して削除する場合はシート名を””で囲ってやります。
Sheets("Sheet1").Delete
Worksheets("Sheet1").Delete
3. この1行だけですと、実行したときに、確認メッセージが表示されます。
Sub ワークシートを削除する() Worksheets(1).Delete End Sub
4. この確認メッセージを表示させないで削除を実行するためには、
Applicationオブジェクトの
DisplayAlertプロパティを使用します。
シートを削除後、表示されるようにするには「True」を使用します。
Sub 先頭のワークシートを削除する() Application.DisplayAlerts = False Worksheets(1).Delete Application.DisplayAlerts = True End Sub
ワークシートを名前で指定して削除する
5.ワークシートを名前で指定して削除する場合には、次のように シート名を””で囲ってください。
Sub ワークシートを名前で指定し削除する() Worksheets("1回").Delete End Sub
6.名前で指定して削除する場合に、もしその名前のシートが存在しないとエラーになってしまいます。そこでエラー回避のコードを入れておきましょう。
Sub シートを名前で指定し削除エラー回避() On Error GoTo errHandler Application.DisplayAlerts = False Worksheets("1回").Delete Application.DisplayAlerts = True Exit Sub errHandler: MsgBox "存在しないシートです" End Sub
下記の例では5回という名前のシートを削除しようとしました。
一番最後のシートを削除する
7. 末尾のワークシートを削除する場合は
Worksheets(Worksheets.Count).Delete と記述します。
ただしこのコードをシートが1枚しかない時に実行するとエラーになりますから気をつけてください。
Sub 最後のシートを削除する() MsgBox Worksheets.Count & "番目のシートを削除しますか?" Worksheets(Worksheets.Count).Delete End Sub