【エクセルマクロ】特定範囲のシートを削除する:自動化で作業効率アップ

ExcelVBA-指定範囲シート削除-アイキャッチ エクセルマクロで効率化する

エクセルマクロで、特定範囲のシートを自動削除するVBAコードをご紹介します。

このページのマクロコードは、コピペで使えます。
ぜひ、お試しください。

特定範囲のシートを削除(パターン1)

以下のExcelVBAを実行すると、指定範囲のシートを一括削除します。


Sub 指定範囲のシートのまとめて削除()

Dim WS As Worksheet
Dim Target_Left As String
Dim Target_Right As String
Dim Chk As Long
Dim Chk2 As Long
Dim i As Long

    'このシートから削除
    Target_Left = "Sheet3"
    
    'このシートまで削除
    Target_Right = "Sheet5"
    
    'シートループで対象シートのインデックス取得
    For Each WS In Worksheets
    
        If WS.Name = Target_Left Then
            Chk = WS.Index
            
        ElseIf WS.Name = Target_Right Then
            Chk2 = WS.Index
            Exit For
        End If
           
    Next WS
    
    '対象範囲のシートを自動削除
    For i = Chk2 To Chk Step -1
        Application.DisplayAlerts = False
            Sheets(i).Delete
        Application.DisplayAlerts = True
    Next i
    
    'ファイル保存等の処理を追加

End Sub

 

マクロ実行後

[Target_Left = “Sheet3”] から [Target_Right = “Sheet5”] までを一括削除します。

[Target_Left = “Sheet3”] が左側に存在することが条件です。

(下図では結果がわかりやすいように、削除するシートタブに色付けしています。)


 
 

特定範囲のシートを削除(パターン2)

以下のExcelVBAを実行すると、特定範囲のシートを一括削除します。


Sub 指定範囲のシートのまとめて削除()

Dim WS As Worksheet
Dim Target_Left As String
Dim Target_Right As String
Dim Chk As Long
Dim Chk2 As Long

    'このシートから削除
    Target_Left = "Sheet3"
    
    'このシートまで削除
    Target_Right = "Sheet5"
    
    Chk = 0
    Chk2 = 0
    
    'シートをループ
    For Each WS In Worksheets
        
        '削除開始シートを見つけたらシート削除
        If WS.Name = Target_Left Then
        
            Application.DisplayAlerts = False
                WS.Delete
            Application.DisplayAlerts = True
            
            Chk = 1
    
        Else
        
            If Chk = 1 Then
            
                '削除終了シートを見つけたらシート削除
                If WS.Name = Target_Right Then
                    Chk2 = 1
                 End If
                 
                Application.DisplayAlerts = False
                    WS.Delete
                Application.DisplayAlerts = True
            End If
        End If
        
        If Chk2 = 1 Then
            Exit Sub
        End If
        
    Next WS

    'ファイル保存等の処理を追加

End Sub

 

マクロ実行後

[Target_Left = “Sheet3”] から [Target_Right = “Sheet5”] までを一括削除します。

[Target_Left = “Sheet3”] が左側に存在することが条件です。


 
 

この記事がお役に立ちますと幸いです。
 

【エクセルマクロ】ワークシート処理を自動化する:超便利29選
...

 

「Excel自動化[最強]時短仕事術」
自動化の基礎と時短に役立つテクニック解説書
毎日の定型業務を手際良く行え、大幅な業務効率化を実現!