Home » エクセルマクロ・Excel VBAの使い方 » WorksheetFunction » VBAからCOUNTA関数を使う

対象:Excel2007, Excel2010, Excel2013, Windows版Excel2016

VBAからCOUNTA関数を使う

「セルa2からa6に入力されているデータの個数をcountaワークシート関数を用いて取得し、変数numに代入する」
という検索で、このサイト・インストラクターのネタ帳へのアクセスがありました。

ワークシート関数の一つデータの入力されているセルの個数をカウントするCOUNTA関数を、Excel VBA(Visual Basic for Applications)から使うサンプルコードを探している方による検索です。

[スポンサードリンク]

WorksheetFunction.CountAを使ったサンプルマクロ

「セルa2からa6に入力されているデータの個数をcountaワークシート関数を用いて取得し、変数numに代入する」
という検索キーワードを、そのままコードにするなら、以下のとおりです。

Sub CountAを使ったサンプル()

 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ライブラリーのグローバルなメンバーですから、

VBAからCOUNTA関数を使う

Applicationを省略した記述にしてOKです。

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関数を使う

「WorksheetFunction」の記事一覧

検索


Copyright © インストラクターのネタ帳 All Rights Reserved.

.