「セルa2からa6に入力されているデータの個数をcountaワークシート関数を用いて取得し、変数numに代入する」
という検索で、このサイト・インストラクターのネタ帳へのアクセスがありました。
ワークシート関数の一つデータの入力されているセルの個数をカウントするCOUNTA関数を、Excel VBA(Visual Basic for Applications)から使うサンプルコードを探している方による検索です。
WorksheetFunction.CountAを使ったサンプルマクロ
「セルa2からa6に入力されているデータの個数をcountaワークシート関数を用いて取得し、変数numに代入する」
という検索キーワードを、そのままコードにするなら、以下のとおりです。
Dim num As Integer
num = WorksheetFunction.CountA(Range("A2:A6"))
End Sub変数・numをDebug.PrintしたりMsgBoxに表示したり、ステップ実行中にローカルウィンドウを表示させれば、「セルa2からa6に入力されているデータの個数をcountaワークシート関数を用いて取得し、変数numに代入する」動きを確認できます。
サンプルマクロで利用しているオブジェクト式について
WorksheetFunction.CountAメソッドを利用するオブジェクト式を、
Application.WorksheetFunction.CountA(Range("A2:A6"))
のように、Applicationプロパティから書く方も少なくないようですが、オブジェクトブラウザーで確認すればわかるとおり、WorksheetFunctionプロパティはExcelライブラリーのグローバルなメンバーですから、
WorksheetFunction.CountAの引数にした、「セルa2からa6」を表すRangeオブジェクトを取得するオブジェクト式は、書き方がいくつも考えられます。
Rangeプロパティの引数を2つ指定して、
Range("A2", "A6")
とも書けますし、RangeプロパティにCellsプロパティを組み合わせて、
Range(Cells(1, "A"), Cells(6, "A"))
とも書けます。
Home » エクセルマクロ・Excel VBAの使い方 » WorksheetFunction » VBAからCOUNTA関数を使う