|
▼ayu さん:
>まず私がやろうとしている事は可能でしょうか?また他に簡単な方法があればお聞きしたいです。
はい。可能です。
データ件数にもよりますが、配列にいれずとも、直接、取り込み側シートにコピペして処理しても
処理速度にそんなに影響はないと思いますし、配列に入れることで、列単位の計算等が窮屈になります。
セル領域に取り込めば、非常に楽というか、柔軟な処理が望めます。
>ちなみに参照先のファイルは閉じた状態で見たいですが、かえって処理が遅くなったりするのでしょうか?
よく、この要望がだされます。
とくに、膨大なサイズのブックを相手にする。だから開くのが重くなるので、開かずに処理したい。
そこで、多くの人がイメージされるのが ExecuteExcel4Macro の利用。
ブックを開かずにセルのデータを取り出せる機能ですので。
最近、別の板ですけど、このあたりの検証が行われました。
www.excel.studio-kazu.jp/kw/20151023213330.html
結論としては
・膨大なブックであれば
ADO方式-->外部参照数式方式
-- がく〜んと効率が悪くなって --> ExecuteExcel4Macro方式
-- さらに効率が悪くなって --> ブックを開く方式
・通常のサイズのブックであれば、
ADO方式-->外部参照数式方式-->ブックを開く方式
-- がく〜んと効率が悪くなって --> ExecuteExcel4Macro方式
ブックサイズがいかほどかはわかりませんが、普通のエクセルブックであれば、ブックを開いて処理しても、
ADO方式や外部参照数式に比べて、そんなに効率には差がでません(少なくとも気になる差でなはい)
ADO方式や外部参照数式方式は確かに早いのですが、取得するためのコードが、ちょっと面倒になります。
当面のお勧めは、素直にブックを開いてセル領域をコピペで取り込んで処理 ですね。
|
|