投稿日 | : 2004/03/31(Wed) 22:56 |
投稿者 | : 魔界の仮面弁士 |
Eメール | : |
URL | : |
タイトル | : Re: EXCELで列をinsertすると遅い |
> 同じことをエクセルマクロとして実行すると、
> VBから実行したときより格段に早いです。
Excelが自分自身を操作するのと比べれば、外部(この場合はVB)からの操作に、
より高い実行コストがかかるのは、致し方無い所だと思いますよ。
ただ、コードの見直し等によって、速度向上が見込める場合はあります。
現在、VBから実行した場合と、Excelで実行した場合とで、それぞれ何秒程度の時間が
かかっていて、それをどの程度まで高速されたいのでしょうか?
例えば、今回のコードの、
> For i=0 to 1000
> objRows.Insert shift:=xlDown
> Next
という所に注目してみると、1001回も挿入を繰り返すよりも、
objSheet.Rows("1:1001").Insert Shift:=xlDown
のようにして、1回で1001行文の行挿入を行った方が高速に処理されます。
また、元のワークシートに数式が多数埋め込まれている場合には、
セルの自動計算機能をOffに設定しておくことで、セルの操作にかかる時間が
短縮されることがあります。