VBAのCountifメソッドとは?メソッドの解説と使用例
VBAを使って売上表等の集計を行う際には、「Countifメソッド」を使います。
ここでは、基本的な使い方を紹介していきます。
目次
1.Countifメソッドについて
1-1.Countifメソッドとは
指定した範囲内のセルのうち、条件に一致するセルの個数を返します。
1-2.Countifの構文
WorksheetFunction.Countif([セルの範囲], [条件])
以降のVBAでは、こちらの表を使用します。
2.Countifメソッドの使用例
2-1.基本的な使用例
表全体から「モニタ」と書かれたセルの個数を取得
Sub sample01() Dim cnt As Integer cnt = WorksheetFunction.Countif(Range("A1:D7"), "モニタ") MsgBox cnt End Sub
結果:
3.特殊な書き方をする場合
3-1.ワイルドカードを使う
3-1-1.前方一致
表全体から「ノート」から始まるセルの個数を取得
'前方一致 Sub sample02() Dim cnt As Integer cnt = WorksheetFunction.Countif(Range("A1:D7"), "ノート*") MsgBox cnt End Sub
結果:
3-1-2.後方一致
表全体から「ート」で終わるセルの個数を取得
'後方一致 Sub sample03() Dim cnt As Integer cnt = WorksheetFunction.Countif(Range("A1:D7"), "*ード") MsgBox cnt End Sub
結果:
3-1-3.前方後方一致
表全体から「トパ」を含むセルの個数を取得
'前方後方一致 Sub sample04() Dim cnt As Integer cnt = WorksheetFunction.Countif(Range("A1:D7"), "*トパ*") MsgBox cnt End Sub
結果:
3-2.比較演算子を使う
D列(値段欄)から「5000超」のセルの個数を取得
Sub sample05() Dim cnt As Integer cnt = WorksheetFunction.CountIf(Range("D1:D7"), ">5000") MsgBox cnt End Sub
結果:
3-3.その他の使用例
3-3-1.複数条件を使う場合
下記のように、「countifs」を使うことでセルの範囲と条件を複数設定することができます。
WorksheetFunction.CountIfCountif([セルの範囲1], [条件1], [セルの範囲2], [条件2], …)
例)A社、かつ値段が10万円超
Sub sample06() Dim cnt As Integer cnt = WorksheetFunction.CountIfs(Range("B1:B7"), "A社", Range("D1:D7"), ">100000") MsgBox cnt End Sub
結果:
3-3-2.別シートのセルを指定する場合
別シートのセルを参照したい場合は、セル範囲でシート名を指定します。
Sub sample07() Dim cnt As Integer cnt = WorksheetFunction.CountIf(Worksheets("商品表").Range("C1:C7"), "ノート*") MsgBox cnt End Sub
結果:
4.最後に
Countifメソッドは、範囲や条件を指定した結果をさらに次の処理へつなげることができます。ぜひ、使いこなしてください。
コメント