【ExcelVBA】ワークシートの削除
基本編
ワークシート削除
Sub Sample() Application.DisplayAlerts = False Thisworkbook.Sheets("Sheet1").Delete Application.DisplayAlerts = True End Sub
Application.DisplayAlerts = False を事前にしておかないと、下のメッセージがいちいち表示されます。
ワークシートの一括削除
パターン1:ワークシート名で指定Sub Sample() Dim TargetArray As Variant TargetArray = Array("Sheet1", "Sheet2") '削除したいワークシート名明記 Application.DisplayAlerts = False On Error Resume Next ThisWorkbook.Worksheets(TargetArray).Delete 'シートを一括削除 On Error GoTo 0 Application.DisplayAlerts = True End Sub※存在しないワークシートを指定すると、削除は全部失敗します。
パターン2:インデックス番号で指定
Sub Sample() Dim TargetArray As Variant TargetArray = Array(1, 2) '削除したいワークシートのインデックス番号明記 Application.DisplayAlerts = False On Error Resume Next ThisWorkbook.Worksheets(TargetArray).Delete 'シートをまとめて削除 On Error GoTo 0 Application.DisplayAlerts = True End Sub※存在しないインデックス番号を指定すると、削除は全部失敗します。
※上記はワークシートの左から1番目と2番目を削除する例です。
応用編
ワークシートを複数削除
Sub Sample() Dim ArrTargetWS() As Variant ArrTargetWS = Array("Sheet1", "Sheet3") Application.DisplayAlerts = False Dim WS As Variant For Each WS In ArrTargetWS On Error Resume Next ThisWorkbook.Sheets(WS).Delete On Error GoTo 0 Next Application.DisplayAlerts = True End Sub※5行目のワークシート名を書き換えてください。
複数削除
一汎用的な書き方だと思います。
ディスカッション
コメント一覧
まだ、コメントがありません