Vba: 特定のテキストを含むセルを数える方法
VBA を使用して、次の基本構文を使用して、特定のテキストを含む範囲内のセルの数をカウントできます。
SubCountCellsWithText ()
Range(" D2 ") = WorksheetFunction.CountIf(Range(" A2:A13 "), " *avs* ")
End Sub
この特定の例では、範囲A2:A13内で「avs」を含むセルの数をカウントし、その結果をセルD2に割り当てます。
注: アスタリスク ( * ) は、 Countif関数でワイルドカードとして使用されます。
代わりにメッセージ ボックス内のセルの数を表示したい場合は、次の構文を使用できます。
SubCountCellsWithText ()
Dim cellCount As Integer
'Calculate number of cells that contain 'avs'
cellCount = WorksheetFunction.CountIf(Range(" A2:A13 "), "* avs* ")
'Display the result
MsgBox "Cells that contain avs : " & cellCount
End Sub
次の例は、さまざまなバスケットボール選手に関する情報が含まれる Excel の次のデータセットを使用して、これらの各メソッドを実際に使用する方法を示しています。
例 1: VBA を使用して特定のテキストを含むセルをカウントし、結果をセルに表示する
チーム名に「avs」を含むセルの数をカウントし、その結果を特定のセルに表示するとします。
これを行うには、次のマクロを作成できます。
SubCountCellsWithText ()
Range(" D2 ") = WorksheetFunction.CountIf(Range(" A2:A13 "), " *avs* ")
End Sub
このマクロを実行すると、次の出力が表示されます。
セルD2に値5が含まれていることに注意してください。
これは、範囲A2:A13にチーム名に「avs」を含むセルが 5 つあることを示しています。
例 2: VBA を使用して特定のテキストを含むセルをカウントし、結果をメッセージ ボックスに表示する
代わりに、 「avs」を含むセルの数をカウントし、結果をメッセージ ボックスに表示するとします。
これを行うには、次のマクロを作成できます。
SubCountCellsWithText ()
Dim cellCount As Integer
'Calculate number of cells that contain 'avs'
cellCount = WorksheetFunction.CountIf(Range(" A2:A13 "), " *avs* ")
'Display the result
MsgBox "Cells that contain avs : " & cellCount
End Sub
このマクロを実行すると、次の出力が表示されます。
メッセージ ボックスは、チーム名に「avs」を含むセルが5 つあることを示しています。
追加リソース
次のチュートリアルでは、VBA で他の一般的なタスクを実行する方法について説明します。
VBA: 「セルに次の値が含まれている場合」の簡単な数式
VBA: 文字列内の文字の出現を数える方法
VBA: 文字列に別の文字列が含まれているかどうかを確認する方法