前回の続きです。

↓

B列、C列の両方の項目を見て、重複しているものは最初のものを残して削除する、という感じです。
プログラムです。
Visual Basic:
-
Sub test()
-
-
Dim lastgyou As Integer
-
Dim i As Integer
-
Dim j As Integer
-
-
Dim checkataiB As String
-
Dim checkataiC As String
-
-
'B列の最終行を求めます。
-
lastgyou = ActiveSheet.Cells(ActiveSheet.Rows.Count, 2).End(xlUp).Row
-
-
'1行目から最終行の前まで繰り返します。
-
For i = 1 To lastgyou - 1
-
-
'チェックする値を、checkataiB、checkataiCに代入します。
-
-
checkataiB = ActiveSheet.Cells(i, 2).Value
-
checkataiC = ActiveSheet.Cells(i, 3).Value
-
-
'今見てる行から、下をチェックします。
-
For j = i + 1 To lastgyou
-
-
'もし、値が同じであれば、
-
If checkataiB = ActiveSheet.Cells(j, 2).Value And checkataiC = ActiveSheet.Cells(j, 3).Value Then
-
-
'その行を削除します
-
ActiveSheet.Rows(j).Delete
-
-
'最終行が1行減ったのでlastgyouの値を減らします。
-
lastgyou = lastgyou - 1
-
-
'チェックしている行を1行前に戻します。
-
j = j - 1
-
-
End If
-
-
Next j
-
-
Next i
-
-
-
End Sub
前回のプログラムとそんなに変わりません。チェックする項目を変数2つに入れ、その値を両方ともチェックしていくという方法ですね。
実行すると、こんな感じ。

ん、うまいこと消えました(^^)ここに置いておきます。→vbastudy_25
こんな感じで、チェックしたい項目が増えれば、同じように変数に代入して、その値をチェックする、、、とすればよいですね。


