VBAで自動化

【VBA】数値セル・特定の文字列のセル・値のセルなどのセル数のカウント方法

COUNT関数とは

Excelのワークシート関数として提供されているものです。VBAのコードからこの関数を使う場合はApplication.WorksheetFunctionオブジェクトを介して呼び出します。文字列、エラー値、真偽値、空セルなどの数値以外のセルはカウントされません。

基本的な使用例

範囲セル内A1:A10の数値セルの数をカウントし、その結果をメッセージボックスに表示しています。

Dim rng As Range
Dim result As Long

Set rng = ThisWorkbook.Sheets("Sheet1").Range("A1:A10")
result = Application.WorksheetFunction.Count(rng)

MsgBox "数値セルの数: " & result

COUNT関数は指定した範囲内の数値セルのみをカウントします。文字列や空白セルなどの非数値セルはカウントされません。
非空をカウントしたい場合はCOUNTA関数、特定の条件を満たすセルをカウントしたい場合はCOUNTIFやCOUNTIFS関数を使用します。

COUNTA関数とは

指定した範囲内の空でないセル(とりあえず値や式が入力されているセル)の数をカウントします。数値だけでなく、文字列やエラー値、日付、真偽値など、セルに少量のコンテンツが入っていればカウントされます。

基本的な使用例

Sheet1のA1からA10までの範囲で、空でないセルの数をカウントしてメッセージボックスで表示します。

Dim rng As Range
Dim result As Long

Set rng = ThisWorkbook.Sheets("Sheet1").Range("A1:A10")
result = Application.WorksheetFunction.CountA(rng)

MsgBox "非空のセルの数: " & resul

COUNTIF関数とは

指定した範囲内のセルのうち、指定した条件を満たすセルの数をカウントします。この関数は、特定の条件を満たすセルがどれだけ存在するか判断する際に非常に役に立ちます。

構文

COUNTIF(範囲, 条件)

範囲: 条件を適用したいセルの範囲。
条件: カウントの基準となる条件。

基本的な使用例

Sheet1のA1からA10までの範囲で、「apple」という文字列が入っているセルの数をカウントして、その結果をメッセージボックスで表示します。

Dim rng As Range
Dim criteria As String
Dim result As Long

Set rng = ThisWorkbook.Sheets("Sheet1").Range("A1:A10")
criteria = "apple"

result = Application.WorksheetFunction.CountIf(rng, criteria)

MsgBox criteria & "の数: " & result

COUNTIFS関数とは

複数の条件を指定して、それらのすべての条件を満たすセルの数を指定された範囲内でカウントします。

構文

COUNTIFS(範囲1, 条件1, [範囲2], [条件2], ...)

範囲1: 1つの目の条件を適用するセルの範囲。
条件1: 1つの目の範囲に適用する条件。
[範囲2], [条件2]: 追加の範囲とその範囲に適用する条件。必要に応じて追加できます。

基本的な使用例

Sheet1のA1からA10までの範囲で"apple"という文字列が入っており、さらに同じ行のB列のセルには10より大きな数値が入っているセルの数をカウントしています。

Dim rng1 As Range, rng2 As Range
Dim criteria1 As String, criteria2 As String
Dim result As Long

Set rng1 = ThisWorkbook.Sheets("Sheet1").Range("A1:A10")
Set rng2 = ThisWorkbook.Sheets("Sheet1").Range("B1:B10")
criteria1 = "apple"
criteria2 = ">10"

result = Application.WorksheetFunction.CountIfs(rng1, criteria1, rng2, criteria2)

MsgBox "条件を満たすセルの数: " & result

-VBAで自動化