基本
ワークシートの削除にはWorksheet.Deleteメソッドを使用します。
実行プログラム
1 2 3 4 5 |
Sub Sample6_7_1() Worksheets("Sheet3").Delete ' "Sheet3"を削除 End Sub |
このメソッドは、ワークシートを削除する時に確認ダイアログボックスを既定で表示します。
このままでは、処理を中断してユーザーの入力を待つことになってしまいます。
確認ダイアログボックスを表示せず削除する
実行プログラム
1 2 3 4 5 6 7 8 9 10 11 |
Sub Sample6_7_2() ' 警告メッセージを表示しない Application.DisplayAlerts = False Worksheets("Sheet3").Delete ' "Sheet3"を削除 ' 警告メッセージを表示する Application.DisplayAlerts = True End Sub |
注意
削除対象のワークシートが存在しない場合、エラーとなります。
ワークシートが存在する場合のみ削除する
ワークシートが存在することを確認した後、削除するようにします。
実行プログラム
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
Sub Sample6_7_3() Dim strDelName As String ' 警告メッセージを表示しない Application.DisplayAlerts = False strDelName = "Sheet2" If Exists(strDelName) = 1 Then ' シート存在チェック Worksheets(strDelName).Delete ' ワークシートを削除 End If ' 警告メッセージを表示する Application.DisplayAlerts = True End Sub ' 関数:シート存在チェック Function Exists(strCheck As String) As Integer Dim i As Integer Exists = 0 For i = 1 To Worksheets.Count If Worksheets(i).Name = strCheck Then Exists = 1 ' シートが存在する場合、1を返す。 Exit For End If Next End Function |
シート存在チェックの為の関数を用意しておくと便利です。