■ 行全体が空白の行を削除する (DeleteBlank)
特定の列で入力されている項目を判断できないような場合には、値が入力される可能性がある列がすべて入力されていないことを判断してから処理を行う必要があります
連続していない行を一度に処理できるようにするため、削除の対象となる行の先頭列のセルを Range オブジェクトに追加し、最後に対象行を一括で削除します
ループ処理で連続していない行を 1 行ずつ削除すると、処理に時間がかかるのと同時にループを逆順にしないと都合が悪くなります
Private Sub DeleteBlank()
Dim o_range As Range
Dim o_sheet As Worksheet
Dim i_row As Long
Dim i_row_max As Long
Set o_sheet = ThisWorkbook.Worksheets(1)
'' 最終行を取得する
i_row_max = o_sheet.Cells.SpecialCells(xlLastCell).Row
For i_row = 2 To i_row_max
'' 1列目から10列目がすべて入力されていない場合
If (Application.CountA(o_sheet.Cells(i_row, 1).Resize(, 10)) > 0) Then
If (o_range Is Nothing) Then
Set o_range = o_sheet.Cells(i_row, 1)
Else
'' 対象セルを Range オブジェクトに追加
Set o_range = Union(o_range, o_sheet.Cells(i_row, 1))
End If
End If
Next i_row
If (Not o_range Is Nothing) Then
'' 対象セルを含む行を削除
o_range.EntireRow.Delete
Set o_range = Nothing
End If
Set o_sheet = Nothing
End Sub