教えて!ExcelVBA!

ExcelVBAの基礎知識・書き方について紹介します。

ExcelVBAのWorksheetFunctionオブジェクトで使用するCount関数の使い方

構文

構文は以下の通りです。

WorksheetFunction.Count(範囲)

解説

WorksheetFunctionは、ExcelVBAの組み込みオブジェクトで、Excelのワークシート関数をVBAから呼び出す際に使用します。Count関数は、指定した範囲内に含まれる数値のセルの数を数えるために使います。範囲は、数を数える対象となるセル範囲を指定します。

プログラミング例

具体的なプログラミング例を紹介します。

(例1)範囲内の数値のセル数を数える

Sub 数値のセル数を数える()
    Dim 範囲 As Range
    Dim 数値の数 As Long
    ' A1からA10までの範囲を設定
    Set 範囲 = Range("A1:A10")
    ' 範囲内の数値のセル数を数える
    数値の数 = WorksheetFunction.Count(範囲)
    ' 結果をメッセージボックスで表示
    MsgBox "数値のセルの数は " & 数値の数 & " です。"
End Sub

上記のプログラムは、範囲という名前の変数に、セル範囲「A1:A10」を設定しています。WorksheetFunction.Countを使って、この範囲内に数値が入力されているセルの数を数え、数値の数という変数に格納しています。MsgBoxで結果を表示しています。範囲内に数値がいくつあるかを教えてくれます。

(例2)別のシートで数値のセル数を数える

Sub 別シートの数値を数える()
    Dim データシート As Worksheet
    Dim 範囲 As Range
    Dim 数値の数 As Long
    ' シート名を指定
    Set データシート = Worksheets("データ")
    ' データシートのB2からB11の範囲を設定
    Set 範囲 = データシート.Range("B2:B11")
    ' 範囲内の数値のセル数を数える
    数値の数 = WorksheetFunction.Count(範囲)
    ' 結果をメッセージボックスで表示
    MsgBox "データシートの数値のセルの数は " & 数値の数 & " です。"
End Sub

上記のプログラムは、データシートという名前のシート変数を定義し、特定のシート「データ」を参照しています。そのシートの「B2:B11」の範囲で数値のセル数を数えています。MsgBoxで結果を表示し、数値のセルが何個あるか確認できます。

まとめ

Count関数は、範囲内の数値が入力されたセルの数を簡単に数えることができる便利な関数です。WorksheetFunctionオブジェクトを使って、通常のExcel関数をVBA内でも使用できます。数値が入っているセルの数を知りたい時や、データの分析をしたい時に役立ちます。