動的配列の効果的な使い方 VBAでの2次元配列を使った、データの他のブックやシートへの移動
動的配列はExcelシートに取り込んだCSVデータを、他のシートやブックに移動したい時に便利です。移動先のシートやブックの項目が、CSVデータの取り込み項目順でない事があるからです。動的配列の宣言は下記となります。ポイントとして、Option Base1を使い配列の下限値を1とします。
Option Base 1(モジュールの先頭に記述します)
Dim myData() as String(動的配列の宣言)
ここで、CSVデータの最終行を求めます。列はCSVデータの項目数分あるので、ここでは求めた最終行をLastRow、列数を3とします。ReDimステートメントで、配列の要素数を確定します。
ReDim myData(LastRow,3)
ループ処理を使って、配列にCSVデータを配列に格納します。
For i=1 to LastRow
myData(i,1)=Cells(i,1).Value
myData(i,2)=Cells(i,2).Value
myData(i,3)=Cells(i,3).Value
Next i
配列にCSVデータをループ処理で格納したので、他のブックやシートをアクティブにします。
Workbooks(“ブック名”).Worksheets(“シート名”).Activate
データ移動先ではループ処理で配列のデータを対象のセルに入力します。この場合は2列目のセルにCSVデータの2列目、3列目のセルにCSVデータの3列目、5列目のセルにCSVデータの1列目を入力しています。
For I =1 to LastRow
Cells(i,2).Value=myData(i,2)
Cells(i,3).Value=myData(i,3)
Cells(i,5).Value=myData(i,1)
Next i
これで、配列に格納したデータを希望の場所に入力できます。