'■WorksheetFunctionを使う
For i = 2 To Cells(Rows.Count, "C").End(xlUp).Row '最終行までループする
With Cells(i, "C")
.Offset(0, 1) = WorksheetFunction.CountIf(Range("A:A"), .Value) 'カウントする
End With
Next
'■数式を埋め込む
a = Cells(Rows.Count, "C").End(xlUp).Row '最終行を取得
Range("D2:D" & a) = "=COUNTIF(A:A,C2)" 'A~Cの項目をカウントする
Range("D2:D" & a).Value = Range("D2:D" & a).Value '値に変換
Sub TEST1()
'1つの項目をカウントする
Cells(2, "D") = WorksheetFunction.CountIf(Range("A:A"), Cells(2, "C"))
End Sub
少し長いので、「With」でくくります。
「With」でくくる
Sub TEST2()
'1つの項目をカウントする
With Cells(2, "C")
.Offset(0, 1) = WorksheetFunction.CountIf(Range("A:A"), .Value)
End With
End Sub
表を用意しておきます。
表を用意
では、VBAコードを実行してみます。
「A」をカウント
結果は、「2」個となりました。
「A」をカウントできています。
Forと変数を使って繰り返す
先ほどのVBAコードを、「Forと変数」を使って繰り返します。
Sub TEST3()
'A~Cをループする
For i = 2 To 4
'カウントする
With Cells(i, "C")
.Offset(0, 1) = WorksheetFunction.CountIf(Range("A:A"), .Value)
End With
Next
End Sub
表を用意しておきます。
表を用意
では、VBAコードを実行してみます。
ループしてカウント
「A~C」のセルをループしてカウントできました。
最終行までの条件一致したセルをカウントする
次は、「最終行まで」の条件一致したセルをカウントしてみます。
最終行を取得するには、「End」を使います。
Sub TEST4()
'最終行までループする
For i = 2 To Cells(Rows.Count, "C").End(xlUp).Row
'カウントする
With Cells(i, "C")
.Offset(0, 1) = WorksheetFunction.CountIf(Range("A:A"), .Value)
End With
Next
End Sub
Sub TEST7()
'最終行を取得
a = Cells(Rows.Count, "C").End(xlUp).Row
'A~Cの項目をカウントする
Range("D2:D" & a) = "=COUNTIF(A:A,C2)"
Range("D2:D" & a).Value = Range("D2:D" & a).Value '値に変換
End Sub