投稿時間: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に設定しておくことで、セルの操作にかかる時間が 短縮されることがあります。
|