Vba を使用してテーブル内の行を数える方法 (例あり)
VBA を使用して Excel のテーブル内の行数をカウントするには、次の構文を使用できます。
SubCountTableRow ()
Dim tbl As ListObject
'specify table to count rows in
Set tbl = ActiveSheet.ListObjects(" Table1 ")
'create message box that displays row count
MsgBox " Total Rows: " & tbl.Range.Rows.Count & vbNewLine & _
" Header Rows: " & tbl.HeaderRowRange.Rows.Count & vbNewLine & _
" Body Rows: " & tbl.ListRows.Count
'set tbl variable to Nothing
Set tbl = Nothing
End Sub
この特定の例では、アクティブ シートのTable1というテーブルの次の行数をカウントします。
- 総行数
- ヘッダー行の総数
- ボディラインの総数
MsgBox関数を使用して、これらの各値を 1 つのメッセージ ボックスに表示するメッセージ ボックスを作成します。
注: vbNewLineステートメントを使用して、新しい行を挿入し、複数行のメッセージ ボックスを作成します。
次の例は、この構文を実際に使用する方法を示しています。
例: VBA を使用してテーブル内の行をカウントする方法
さまざまなバスケットボール選手に関する情報を含む次のTable1というテーブルがあるとします。
このテーブルの行数をカウントする次のマクロを作成できます。
SubCountTableRow ()
Dim tbl As ListObject
'specify table to count rows in
Set tbl = ActiveSheet.ListObjects(" Table1 ")
'create message box that displays row count
MsgBox " Total Rows: " & tbl.Range.Rows.Count & vbNewLine & _
" Header Rows: " & tbl.HeaderRowRange.Rows.Count & vbNewLine & _
" Body Rows: " & tbl.ListRows.Count
'set tbl variable to Nothing
Set tbl = Nothing
End Sub
このマクロを実行すると、次の出力が表示されます。
メッセージ ボックスには、テーブルに合計10行があることが示されています。
これは、ヘッダー行が1 つと本文行が9 つあることも示しています。
追加リソース
次のチュートリアルでは、VBA で他の一般的なタスクを実行する方法について説明します。
VBAを使用して範囲内の一意の値をカウントする方法
VBAを使用して範囲内の行数をカウントする方法
VBA を使用して特定のテキストが含まれるセルを数える方法