_基本

複数シートをまとめて削除する【ExcelVBA】

複数のワークシートをまとめて削除したい

単一のワークシートを削除する方法はDeleteメソッドで対応が可能です。
では、まとめて削除するにはどうしたらよいでしょうか。

事前に削除したいワークシートを配列で渡せば削除をしてくれます。
下記3パターンがあります。

複数のワークシートをまとめて削除するサンプルコード

'■複数のシートをまとめて削除するサンプルコード
Public Sub sample()
    Application.DisplayAlerts = False
     
    '■①複数シートをまとめて削除(シート名で選択)
    Worksheets(Array("Sheet1", "Sheet2", "Sheet3")).Delete
     
    '■②複数シートをまとめて削除(シート番号で選択)
    Worksheets(Array(1, 2, 3)).Delete
          
    '■③複数シートをまとめて削除(配列で選択)
    Dim arr As Variant
    ReDim arr(1 To 3)
    arr(1) = "Sheet1"
    arr(2) = "Sheet2"
    arr(3) = "Sheet3"
    Worksheets(arr).Delete

    Application.DisplayAlerts = True
End Sub

注意点

  • 「このシートは完全に削除されます。続けますか?」ポップアップを表示させないようにするには
    Application.DisplayAlerts = Falseとします。
  • エクセルの仕様上、すべてのシートを削除できません。
    下記のエラーポップアップが表示されます。
    ————-
    ブックのシートをすべて削除または非表示にすることはできません
    ————-

関連記事

コメント

タイトルとURLをコピーしました