縦(行)ループ/行削除
指定の列に特定のワードに一致した場合、該当する行を削除するエクセルマクロです。
*必要に応じて、ワードに一致する列番号を変更して活用してください。
Sub 特定のワードに一致した場合_該当行を削除()
Dim targetSheet As Worksheet
Set targetSheet = ThisWorkbook.ActiveSheet
Dim MaxRow1 As Long
MaxRow1 = targetSheet.Cells(Rows.Count, 2).End(xlUp).Row
Dim MaxCol1 As Long
MaxCol1 = targetSheet.Cells(1, Columns.Count).End(xlToLeft).Column
Dim i As Long
For i = 2 To MaxRow1
If ActiveSheet.Cells(i, 1) = "総計" Then
Application.Rows(i).Delete
End If
If ActiveSheet.Cells(i, 1) = "" Then
Application.Rows(i).Delete
End If
If ActiveSheet.Cells(i, 7) = "年間総計" Then
Application.Rows(i).Delete
End If
Next
MsgBox "完了"
End Sub
特定のワードに一致した場合、対応する行を削除する方法の流れ
- 最初に、対象のシートを設定し、最大行数と最大列数を取得します。
- 次に、
For
ループを使用して各行をループします。If
ステートメントを使用して、特定のワードに一致する行を判別します。条件に一致する場合、Application.Rows(i).Delete
を使用して、該当行を削除します。 - 最後に、完了メッセージを表示するための
MsgBox
ステートメントを使用して処理を終了します。
解説
- シート名を指定する場合:Worksheets(“シート名”)
- 参考)セル範囲を指定する方法
Set cH = targetSheet.Range(“E33:E” & MaxCol1) - A列のセルが総計というワードの場合、行削除
- A列のセルが空白の場合、行削除
- G列が年間総計の場合、行削除
ダミーデータのダウンロード
列削除_名称一致
*必要に応じて、ワードに一致する列名を変更して利用してください。
Sub 列削除_名称一致()
Dim i, lCol As Long
lCol = Cells(1, Columns.Count).End(xlToLeft).Column
For i = lCol To 1 Step -1
If Cells(1, i) = "性別" Then
Columns(i).Delete
End If
Next i
MsgBox "完了"
End Sub
特定のワードに一致した場合、対応する列を削除する方法の流れ
- まず、最後の列の番号を取得します。
- 次に、
For
ループを使用して各列をループします。If
ステートメントを使用して、特定のワードに一致する列を判別します。条件に一致する場合、Columns(i).Delete
を使用して、該当列を削除します。 - 最後に、完了メッセージを表示するための
MsgBox
ステートメントを使用して処理を終了します。
コメント