【Excel VBA】テーブルを配列に保存する(コード1行)

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が起点となりますのでご注意ください。

コメント

タイトルとURLをコピーしました