エクセルマクロで、複数シートの指定行を一括削除する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行目を削除します。
この記事がお役に立ちますと幸いです。
「Excel自動化[最強]時短仕事術」
自動化の基礎と時短に役立つテクニック解説書
毎日の定型業務を手際良く行え、大幅な業務効率化を実現!