可変CSVを読み込んだ結果
調理していくぞ
前回は横可変csvを読み込んだわけですが、そのデータを元に、必要な部分だけを取り出したいわけです。
技術的には何も難しいことは無く、普通にループすりゃいいわけです。
ただし、ループ数が可変なので、それを考慮します。
ループスタート箇所は分かっているし、ループに含まれる項目ももちろんわかっているので、
Loopnumとでも名付けて、(LastColumn – StartColumn + 1) \ 5
とでもしましょうか。
これまでとは違うのだよ
とりあえず完成。
今まで通り、Cellsとか使ってペタペタ貼っていく作業から始めて見ましたが、やはり数千行となると少しもっさり。(6.7秒)
少し早くしたいので、前回学んだ配列とやらを使ってみます。要は、代入作業が長いっていうので、それを一度でやってしまいます。
Dim hako as variant
今回、箱のサイズは分かるので、
Redim hako(行数, 列数)
これにcellをぶち込んでいきました。
最後に、Range(“A2”)に代入するのですが、この辺上手く理解できていません。
物は試し、壊れはするまい。
Range(“A2”) = hako
うむ、A2のみに代入された。なるほど、そういう感じか。
前やってみたやつ
Range(“A2”).Resize(行数,列数) = hako
上手くいった。どうやら、Resizeを使うと、rangeの範囲をここからここまで広げるよ、的なことが出来るらしいぞ。勉強しなきゃ。
ちなみに、実行時間は2.7秒。大分サクサクだ。
まとめ
やっとVBAの勉強が一段落したが、いざやろうと思うと、こんな簡単なアプリケーションすら手を焼いている。
実際にやってみるのが一番勉強になるなあ~と思った。