今回は セル範囲の値をまとめて Variant 型変数に入れて 2 次元配列に変えてしまう という大技を解説しますよ。データベース研究所 でも似たようなことやったけど、ま、それはそれ、これはこれ、ということで講座を始めましょ~。
セル範囲の値を Variant 型データに格納します
下の書籍リストがセル範囲 B2:D6 に入力されているとして話を進めます。
自分でもやってみたいけど、データを用意するのが面倒くさい人はコピーしてお持ち帰りくださいな。
「北京のワンダーランド」 | 車塚俊範 | 白樺社 |
「愛しの花いちもんめ」 | 日堂瑞 | 中世書林 |
「へろへろ男」 | 高木龍斗 | 百人社 |
「桜子さんとサーベルタイガー」 | 真木誓雄 | 帝国出版社 |
「明治維新と古本市」 | 南木清太郎 | 赤弓書販 |
この表をまとめて Variant 型変数にぽいっと放り込んでみます。
'書籍リストを 2 次元配列に格納します
Sub BookList2()
Dim mylist As Variant
'セル B2 を含む範囲を Variant 型変数に入れます
mylist = ActiveSheet.Range("B2").CurrentRegion
'配列を全て表示します
For i = 1 To 5
Debug.Print mylist(i, 1), mylist(i, 2), mylist(i, 3)
Next i
End Sub
マクロを実行すると
「愛しの花いちもんめ」 日堂瑞 中世書林
「へろへろ男」 高木龍斗 百人社
「桜子さんとサーベルタイガー」 真木誓雄 帝国出版社
「明治維新と古本市」 南木清太郎 赤弓書販
のように表示されますよ。これはつまり
のようにセル範囲を Variant 型変数に放り込むだけで、1つ1つのセルデータを 2 次元配列に格納してくれるということなのです。とっても便利ですね~。これを使うと繰返し処理で1つ1つデータを格納するという手間が省けてしまうのです。皆さんもどんどんセル範囲を Variant 型変数に放り込んでくださいな~。