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

VBAでテーブルを直接操作してもいいですが、テーブルを配列に保存し(取り込み)、配列でデータを扱うほうが速い場合があります。

この記事では、テーブルのデータ部分を簡単に配列に保存する方法についてご紹介します。

目次

テーブルを配列に保存する

テーブルのデータ部分を配列に保存する方法はとても簡単です。

配列名()=Range("テーブル名")

このように配列名 = テーブル名 だけで配列に読み込むことができます。

具体例として、次のコードを実行してみます。

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

Dim MyArray() as Variant と配列を宣言しておけば、配列名の後の”()”かっこはあっても、なくてもどちらでも大丈夫です。
配列だとわかるようにするなら、”()”かっこがあったほうがいいと思います。

  • MyArray()
  • MyArray

■テーブルデータ

■実行結果

解説

①MyArrayの配列に、TBL職員のテーブルデータを保存します。

➁保存した配列のデータをFor文でメッセージボックスに順に表示します。
「山田 太郎」→「1950/1/1」→「男」・・・→「製造部」の順に表示されます。

セル範囲指定で配列に保存すると配列が1からになる

配列の開始は0からの場合と1からの場合があります。言語によって異なりますが、ほとんどの言語が0から始まります。

Excelの場合も普通に配列を宣言すると、例えばMyArray(2)の場合、

  • MyArray(0)
  • MyArray(1)
  • MyArray(2)

の3つができ、0が起点となります。

しかしは、テーブルなどのセル範囲から配列に保存して作成した配列は、1から始まります。

先ほどご紹介した事例のコードだと、MyArray(1,1)~MyArray(3,4)の配列で保存されています。

テーブルを配列に保存した場合は、1が起点となりますのでご注意ください。

まとめ

テーブルを配列に保存するには、以下のコードで簡単に保存できます。

配列名()=Range("テーブル名")

また以下の点を必ず押さえておきましょう。

  • データ部分のみが、配列に保存される。
  • テーブルを配列に保存した場合、配列は”1”が起点になる。
よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

コメント

コメントする

目次