大体でIT

-ちょっと使えるネタを紹介-

大体でIT

Excel VBAで、「CountIf関数」を使って最終行までカウントする方法をご紹介します。最終行を取得するには「End」を使います。「WorksheetFunction」を使う場合は「最終行までループ」です。「数式埋め込み」の場合は「最終行までのセル範囲に埋め込む」ことで最終行までをカウントすることができます。

はじめに

この記事では、VBAでCountIf関数を使って最終行までカウントする方法について、ご紹介します。

最終行を取得するには、「End」を使います。

「WorksheetFunction」を使う場合は、「最終行までループ」してCountIf関数を使います。

「埋め込み数式」の場合は、「最終行までのセル範囲に埋め込んで」CountIf関数を使うという感じです。

では、VABでCountIf関数を使って最終行までカウントする方法について、解説していきます。

この記事で紹介すること

  • VBAでCounIf関数を使って最終行までカウントする方法

目次から見たい項目へ移動すると便利ですよ。

目次

VBAコードまとめ

CountIf関数を使って最終行までカウントするVBAコードについて、まとめています。

VBAコードだけ確認したい場合に、ご活用ください。

'■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 '値に変換

では、解説していきます。

WorksheetFunctionでCountIf関数を繰り返し使う

「WorksheetFunction」でCountIf関数を繰り返し使う方法で、最終行までカウントしてみます。

条件一致したセルをカウント

まずは、「WorksheetFunction」で条件一致したセルをカウントしてみます。

1つの項目でカウントする場合は、こんな感じになります。

1つの項目でカウント

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」をカウント

「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

表を用意しておきます。

表を用意

表を用意

「End」で最終行の「4」を取得します。

「End」で最終行を取得

「End」で最終行を取得

取得した最終行を使って、最終行までループしてカウントします。

最終行までループしてカウント

最終行までループしてカウント

最終行までループしてカウントできました。

こんな感じで、「WorksheetFunction」を使う場合は、最終行までループしてCountIf関数を使います。

数式を埋め込んでCountIf関数を使う

「数式を埋め込んで」CountIf関数で、最終行までカウントしてみます。

条件一致したセルをカウントする

まずは、条件一致したセルをカウントしてみます。

1つの項目に対して、カウントする場合は、こんな感じになります。

Sub TEST5()
    
    '1つの項目をカウントする
    Range("D2") = "=COUNTIF(A:A,C2)"
    Range("D2").Value = Range("D2").Value '値に変換
    
End Sub

表を用意しておきます。

表を用意

表を用意

では、VBAコードを実行してみます。

「A」をカウント

「A」をカウント

結果は、「2」個となりました。

「A」をカウントできています。

数式をコピーして使う

数式埋め込みをVBAで使う場合は、「数式をコピー」して使うと便利です。

数式をコピーして使うと便利

数式をコピーして使うと便利

セルに入力した数式をコピーして使います。

数式を一括で埋め込む

「複数の項目」を埋め込み数式でカウントする場合は、数式を「一括で」埋め込みます。

セル範囲の「Range("D2:D4")」を指定して埋め込みます。

Sub TEST6()
    
    'A~Cの項目をカウントする
    Range("D2:D4") = "=COUNTIF(A:A,C2)"
    Range("D2:D4").Value = Range("D2:D4").Value '値に変換
    
End Sub

表を用意しておきます。

表を用意

表を用意

では、VBAコードを実行してみます。

数式を一括で埋め込む

数式を一括で埋め込む

A~Cをカウントすることができました。

数式を一括で埋め込んで、カウントできています。

最終行までの条件一致したセルをカウント

「最終行まで」の条件一致したセルをカウントしてみます。

最終行を取得するには、「a = Cells(Rows.Count, "C").End(xlUp).Row」で取得します。

取得した最終行を「Range("D2:D" & a)」というようにセル範囲に変数を使って入れ込みます。

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

表を用意しておきます。

表を用意

表を用意

「End」で最終行の「4」が取得できます。

「End」で最終行を取得

「End」で最終行を取得

数式を一括で埋め込んで、最終行までカウントすることができます。

数式を一括で埋め込む

数式を一括で埋め込む

最終行までカウントすることができました。

こんな感じで、数式埋め込みを使う場合は、「最終行までのセル範囲」に数式を「一括」で埋め込む、という感じで使います。

おわりに

この記事では、VBAでCountIf関数を使って最終行までカウントする方法について、ご紹介しました。

最終行を取得するには、「End」を使います。

「WorksheetFunction」を使う場合は、「最終行までループ」してCountIf関数を使います。

「埋め込み数式」の場合は、「最終行までのセル範囲に埋め込んで」CountIf関数を使うという感じです。

参考になればと思います。最後までご覧くださいまして、ありがとうございました。

関連する記事から探す

カテゴリから探す

カテゴリから見たい項目を探すと便利ですよ。

アーカイブから探す