|
お世話になりますさん、こんにちは
Sub test()
Dim lngRow As Long
Dim i As Long
With ActiveSheet
'F列を必須入力として最終行取得
lngRow = .Range("F65536").End(xlUp).Row
'データが65536行まで入力してあった場合
'もしくはデータが無い場合の処理
If lngRow = 1 Then
If .Range("F2").Value = "" Then
Exit Sub
Else
lngRow = 65536
End If
End If
'画面更新しない
Application.ScreenUpdating = False
For i = lngRow To 2 Step -1
If .Range("E" & i).Value = "" Then
'E列が未入力の場合
'G列に○が入っている場合のみ行削除
If .Range("G" & i).Value = "○" Then
.Rows(i).Delete
End If
Else
'E列が入力されている場合
'G列に丸が入っている場合のみF&G列削除
If .Range("G" & i).Value = "○" Then
.Range("F" & i & ":G" & i).Delete Shift:=xlToLeft
'もしくは
'.Range("F" & i & ":G" & i).Value=""
End If
End If
Next i
'画面更新する
Application.ScreenUpdating = True
End With
End Sub
こんな感じでどうでしょう?
|
|