Excel VBA – COUNTIF関数の使い方【変数で条件・セル範囲の指定も】

midSun31midSun31
IT・デジタル

特定の条件でセルをカウントできるCOUNTIF関数はとても便利ですよね。COUNTIF関数は、Excel VBAでも利用することができます。

この記事では、Excel VBAでのCOUNTIF関数の使い方について解説していきます。条件やセル範囲を変数で指定するサンプルもご紹介しています。

VBAでCOUNTIF関数を使う方法

Excel VBAでは以下の構文でCOUNTIF関数を利用できます。

WorksheetFunction.CountIf(セル範囲, 条件)

以下の表を例に、VBAで様々な条件のCOUNTIFを利用する方法を解説します。

「文字列」の条件でカウントする場合

商品分類が「セーター」の条件でカウントしたい場合、以下のように記述します。セル範囲はRangeを使い、条件は文字列で指定します。

WorksheetFunction.CountIf(Range("C5:C13"), "セーター")

コード全体のサンプルはこちらです。

Sub カウント()
 
Dim cnt As Integer
 
' 商品分類が「セーター」であるセルをカウント
cnt = WorksheetFunction.CountIf(Range("C5:C13"), "セーター")
 
Range("C2").Value = cnt
 
End Sub

マクロをボタンに登録して実行すると、商品分類が「セーター」である数「3」を取得することができました。

  • 実行結果

「ワイルドカード」を条件に使う

もちろんワイルドカードを利用して文字列を曖昧検索することもできます。

Sub カウント()
 
Dim cnt As Integer
 
' 商品分類が「セーター」であるセルをカウント
cnt = WorksheetFunction.CountIf(Range("C5:C13"), "セータ*")
 
Range("C2").Value = cnt
 
End Sub

「数値」の条件でカウントする場合

数値の一致を指定したい場合のサンプルです。

Sub カウント()
 
Dim cnt As Integer
 
' 在庫が100であるセルをカウント
cnt = WorksheetFunction.CountIf(Range("F5:F13"), 100)
 
Range("C2").Value = cnt
 
End Sub
  • 実行結果

「比較演算子」を使ってカウントする

比較演算子を利用する場合のサンプルです。

比較演算子ごと、文字列としてダブルクォート「”」で囲む必要がある点に注意しましょう。

Sub カウント()
 
Dim cnt As Integer
 
' 在庫が100以上であるセルをカウント
cnt = WorksheetFunction.CountIf(Range("F5:F13"), ">=100")
 
Range("C2").Value = cnt
 
End Sub

VBAのCOUNTIFで変数を使ってカウントする方法

COUNTIF関数のセル範囲、条件を変数に入れて利用することもできます。

参照範囲を変数に入れる場合はVariant配列を利用すると便利です。

代入する際には「Set」が必要なので注意してください。

Sub カウント()
 
Dim cnt As Integer
Dim searchRange As Variant
Dim productName As String
 
'参照範囲を設定
Set searchRange = Range("C5:C13")
'商品分類を設定
productName = "セーター"
 
' 設定条件でカウント
cnt = WorksheetFunction.CountIf(searchRange, productName)
 
Range("C2").Value = cnt
 
End Sub

以上、Excel VBAでCOUNTIF関数を利用する方法でした。

IT・デジタル
Howpon[ハウポン]

コメント