VB6.0用掲示板の過去のログ(No.1)−VBレスキュー(花ちゃん)
[記事リスト] [新規投稿] [新着記事] [ワード検索] [過去ログ] [管理用]

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


- 関連一覧ツリー (★ をクリックするとツリー全体を一括表示します)

- 返信フォーム (この記事に返信する場合は下記フォームから投稿して下さい)

- Web Forum -