[VBA] セル範囲の値を Variant 型変数に格納します

 今回は セル範囲の値をまとめて Variant 型変数に入れて 2 次元配列に変えてしまう という大技を解説しますよ。データベース研究所 でも似たようなことやったけど、ま、それはそれ、これはこれ、ということで講座を始めましょ~。

セル範囲の値を Variant 型データに格納します

 下の書籍リストがセル範囲 B2:D6 に入力されているとして話を進めます。
 自分でもやってみたいけど、データを用意するのが面倒くさい人はコピーしてお持ち帰りくださいな。

「北京のワンダーランド」 車塚俊範 白樺社
「愛しの花いちもんめ」 日堂瑞 中世書林
「へろへろ男」 高木龍斗 百人社
「桜子さんとサーベルタイガー」 真木誓雄 帝国出版社
「明治維新と古本市」 南木清太郎 赤弓書販

 Excelワークシート書籍2次元配列

 この表をまとめて Variant 型変数にぽいっと放り込んでみます。

 Option Base 1

 '書籍リストを 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

 マクロを実行すると

「北京のワンダーランド」     車塚俊範   白樺社
「愛しの花いちもんめ」      日堂瑞    中世書林
「へろへろ男」          高木龍斗   百人社
「桜子さんとサーベルタイガー」  真木誓雄   帝国出版社
「明治維新と古本市」       南木清太郎  赤弓書販

のように表示されますよ。これはつまり

mylist = ActiveSheet.Range("B2").CurrentRegion

のようにセル範囲を Variant 型変数に放り込むだけで、1つ1つのセルデータを 2 次元配列に格納してくれるということなのです。とっても便利ですね~。これを使うと繰返し処理で1つ1つデータを格納するという手間が省けてしまうのです。皆さんもどんどんセル範囲を Variant 型変数に放り込んでくださいな~。

 ≫ VBA 辞典メニューに戻って他の記事も読んでくださいな~♪

スポンサードリンク
末尾大型広告
末尾大型広告

コメントをどうぞ

メールアドレスが公開されることはありません。

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください