【エクセルマクロ】複数シートの指定行を削除:使用例4選

ExcelVBA-複数シートの指定行を削除-アイキャッチ ExcelVBA

エクセルマクロで、複数シートの指定行を一括削除するVBAコードをご紹介します。

・対象シートを開かずにデータを削除することができます。
・削除対象外のシートを指定することができます。

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

複数シートの指定行を削除

以下のExcelVBAを実行すると、複数シートの指定行を一気に削除します。


Sub 複数シートの特定行をまとめて削除()

    Dim objSheet As Worksheet

    '全シートループ
    For Each objSheet In ThisWorkbook.Worksheets
    
        '対象外のシートじゃなければ
        If objSheet.Name <> "削除ダメ" Then
    
            'シートの指定行を削除
       objSheet.Rows("5:10").Delete
        
        End If
    Next

End Sub

 

マクロ実行前

ファイル内に、4シート存在しています。

※削除対象行がわかりやすいように、色付けしています。


 

マクロ実行後

複数シートの指定行(5~10行目)を自動削除します。

[If objSheet.Name <> “削除ダメ” Then] で指定したシートは、

行削除の処理は入りません。


 
 

複数シートの指定行を削除(変数使用)

以下のExcelVBAを実行すると、複数シートの指定行をまとめて削除します。


Sub すべてのシートの特定行を消去()

Dim objSheet As Worksheet
Dim S_Row As Long
Dim E_Row As Long

    '削除開始行
    S_Row = 5

    '削除終了行
    E_Row = 10

    '全シートループ
    For Each objSheet In ThisWorkbook.Worksheets

        'シートの指定行を削除
        objSheet.Rows(S_Row & ":" & E_Row).Delete

    Next

End Sub

 

マクロ実行前

ファイル内に、3シート存在しています。

※削除対象行がわかりやすいように、色付けしています。


 

マクロ実行後

全シートの指定行(5~10行目)を自動削除します。

変数 [S_Row]、[E_Row] を使用して、削除対象行を指定します。


 
 

複数シートの指定行を削除(最終行まで)

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


Sub すべてのシートの特定行を消去()

Dim objSheet As Worksheet
Dim S_Row As Long
Dim LastRow As Long

    '削除開始行
    S_Row = 5

    '全シートループ
    For Each objSheet In ThisWorkbook.Worksheets
    
        '最終行を取得
        LastRow = objSheet.Cells(Rows.Count, 1).End(xlUp).Row

        'シートの指定行を削除
        objSheet.Rows(S_Row & ":" & LastRow).Delete

    Next

End Sub

 

マクロ実行前

ファイル内に、3シート存在しています。

※削除対象行がわかりやすいように、色付けしています。


 

マクロ実行後

全シートの5行目から最終行までを自動削除します。


 
 

複数シートの指定行を削除(配列使用)

以下のExcelVBAを実行すると、配列を使用して複数シートの指定行を削除します。


Sub 複数シートの特定行を消去()

Dim objSheet As Worksheet
Dim i As Long
Dim sht As Variant

    '行削除の対象シート
    sht = Array("Sheet1", "Sheet3")

    '全シートループ
    For Each objSheet In ThisWorkbook.Worksheets
    
        'Arrayループ
        For i = 0 To UBound(sht)
        
            '行削除の対象シートだったら
            If objSheet.Name = sht(i) Then
    
                'シートの指定行を削除
                objSheet.Rows("5:10").Delete
                Exit For
            
            End If
        Next i
    Next

End Sub

 

マクロ実行前

ファイル内に、3シート存在しています。

※削除対象行がわかりやすいように、色付けしています。


 

マクロ実行後

[sht = Array(“Sheet1”, “Sheet3”)] で指定したシートについて、

5~10行目を削除します。


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

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

 

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