VBAでテーブルを直接操作してもいいですが、テーブルを配列に保存し(取り込み)、操作するほうが速い場合があります。
この記事では、テーブルのデータ部分を簡単に配列に取り込む方法についてご紹介します。
テーブルを配列に保存する
テーブルのデータ部分を配列に保存する方法はとても簡単です。
配列名 = テーブル名 だけで配列に読み込むことができます。
具体例として次のコードを実行してみます。
Sub テーブル配列保存()
Dim MyArray() As Variant
Dim x As Long
Dim y As Long
MyArray() = Range("TBL職員")
For y = 1 To UBound(MyArray, 1)
For x = 1 To UBound(MyArray, 2)
MsgBox MyArray(y, x)
Next
Next
End Sub
■テーブルデータ
■実行結果
For文の中身は、配列の中身をメッセージボックスで順に表示するコードになります。
「山田 太郎」→「1950/1/1」→「男」・・・→「製造部」の順に表示されます。
配列の開始は0から?1から?
配列の開始は0からの場合と1からの場合があります。言語によって大きく異なりますが、ほとんどの言語が0から始まります。
Excelの場合も普通に配列を宣言すると、例えばMyArray(2)の場合、
MyArray(0)、MyArray(1)、MyArray(2)
の3つができ、0が起点となります。
しかしは、テーブルなどのセル範囲から配列を作成すると1から始まります。上記でご紹介したコードだとMyArray(1,1)~MyArray(3,4)の配列が作成され保存されます。
テーブルを配列に保存した場合は、1が起点となりますのでご注意ください。
コメント