CurrentRegionで取得した2次元配列の値のうち特定の列の値を連結する方法

特定の列の値を連結 技術・プログラミング
スポンサーリンク

特定の列の値だけ連結させたいけど、2次元配列だと上手くできない!

特定の列に入っている値を取り出し、それらの値を連結させて表示したいことがありました。
例えば、B列の値(B1〜B5)を取得し、「B1 B2 B3 B4 B5」という値に連結させるといった場合です。
そのため

  1. CurrentRegionで範囲を指定。
  2. 指定した範囲の値を2次元配列に格納。
  3. 配列のデータを連結(Join関数)し、値を変数へ格納。

といった手順を取ろうと思ったのですが、上手くいきませんでした。
理由は、Join関数が2次元配列を扱えないためです。
そのため2次元配列を1次元配列に変換し、変換した配列データをJoin関数で連結するようにしました。
忘れそうなので、備忘録的に残しておきます。

特定の列の値のみ連結する(配列処理)

具体的な、VBAコードは下記の通りです。

実行してみると…

イミディエイトウィンドウに結果が出力できていることがわかります。

特定の列の値のみ連結する(ループ処理)

ちなみに、配列を使わず for next や do loop でループさせても同じことができます。
for nextでの処理も記載してみます。

実行してみると…

結果は同じですね。

なこあ
なこあ

for nextでのループ処理だと行数の増加に伴い処理が遅くなるイメージがありますが、それはセルに貼り付ける場合です。
変数や配列に値を格納する場合においては、大きな差はないかと思います。

コメント