エクセルでテーブルを作成し、テーブルの情報をVBAで操作したいことがあります。
この記事では、テーブルのレコード(行)を読み込む方法についてご紹介します。
目次
テーブルのレコードを繰り返す(For Each 変数 In テーブル名)
事前にエクセルに”テーブル名”というテーブルを作成します。

次のコードで、テーブルをレコード(行)毎に繰り返し処理を行います。
Sub テーブルレコード読込()
Dim Data as Variant
For Each Data In Range("テーブル名").Rows
MsgBox Data.Cells(1) & " " & Data.Cells(2) ’処理内容
Next
End Sub
解説
Dataという変数を宣言し、For Eachの構文で、Dataにテーブルの内容を1行ずつ繰り返し読み込む処理となっています。
レコード単位(行単位)で繰り返し処理が行わるため、1列目を指定する場合は「変数名.Cells(1)」、2列目を指定する場合は「変数名.Cells(2)」とすることで指定することができます。
上記のコードでは、「No 名前」をレコードの数だけメッセージボックスに表示します。
テーブル名を指定した場合、テーブルの項目は実行されず1行目のレコードから実行されます。
以下が1回目の実行結果です。上記のテーブルの場合、3回繰り返されます。

まとめ
「For Each 変数 In Range(“テーブル名”)・・・Next」は、テーブルに対して処理を行うときにとても便利なコードです。ぜひ使ってみて下さい。
コメント