教えて!ExcelVBA!

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

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

構文

構文は以下の通りです。

WorksheetFunction.CountA(範囲)

解説

WorksheetFunctionは、ExcelVBAの組み込みオブジェクトで、Excelのワークシート関数をVBAから呼び出す際に使用します。CountA関数は、指定した範囲内の空白でないセルの数を数える関数です。数値、文字列、論理値(TRUE、FALSE)、エラー値、または空の文字列("")をカウントしますが、完全に空のセルはカウントしません。範囲は、空白でないセルを数える範囲です。この範囲はシート上のセル範囲や配列変数でも指定できます。

プログラミング例

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

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

Sub カウントA関数の例1()
    Dim 範囲 As Range
    Dim 非空セル数 As Long
    ' A1からA10の範囲を指定
    Set 範囲 = Range("A1:A10")
    ' 範囲内の非空セルの数を数える
    非空セル数 = WorksheetFunction.CountA(範囲)
    ' 結果をメッセージボックスで表示
    MsgBox "A1からA10の範囲にある空白でないセルの数は " & 非空セル数 & " です。"
End Sub

上記のプログラムでは、Range("A1:A10")A1からA10の範囲を指定し、その範囲内の空白でないセルの数をWorksheetFunction.CountA数えています。 結果は、メッセージボックスで表示されます。

(例2)配列の非空セルの数を数える

Sub カウントA関数の例2()
    Dim 配列() As Variant
    Dim 非空セル数 As Long
    ' 配列に値を設定
    配列 = Array("りんご", "", "みかん", "バナナ", "")
    ' 配列内の非空セルの数を数える
    非空セル数 = WorksheetFunction.CountA(配列)
    ' 結果をメッセージボックスで表示
    MsgBox "配列の中の空白でない要素の数は " & 非空セル数 & " です。"
End Sub

上記のプログラムでは、配列内の空白要素を数えています。Array("りんご", "", "みかん", "バナナ", "")で空の要素を含んだ配列を設定し、WorksheetFunction.CountAで空でない要素の数を数えます。

まとめ

CountA関数は、範囲や配列内の空白セルや要素をカウントする便利な関数です。