スプレッドシートでの大量データ表示後のアンロードが遅い


G-MAX777  2002-04-01 23:26:48  No: 75456

VBでスプレッドシートを使用した
アプリを作成する際に、非常に大量のデータを表示
した場合、フォームのアンロードに非常に時間がかかって
しまいます。
HIDEステートメントで非表示にすればはやいんですが、
結局アプリ自体を終了する場合に遅くなってしまいます。
なにかいい方法ないでしょうか?


みゅう  2002-04-04 03:32:46  No: 75457

始めまして  みゅうと申します。

実際の状況はあまり見えませんが、アプリケーション自体  多数のフォームで構成されている場合、Unload及び、アプリケーションのEndは相当重いものになりますよね。
で  スプレッドのお話ですが、Unloadする際  空文字等でクリアなどされてるのでしょうか?  かつ、for  Nextなどでまわしてたりしてないでしょうか?
もし、そうであればそれが原因ですね。

with


みゅう  2002-04-04 03:38:06  No: 75458

すみません  途中でした。

With Form.vaSpr
   
   .Col = -1
   .Row = -1
   .Text = ""

end With

の様な感じで一括クリアというのはどうでしょうか?

お答えの的が外れていたら申し訳ございません。


みゅう  2002-04-04 03:48:05  No: 75459

追記です。

プロパティーのMaxColとMaxRowの設定値をいきなり0にしてしまうのも
ありなのでは?と思います。
一気にメモリを開放すると(未確認)思いますので。
やってみてください。


G-MAX777  2002-04-04 20:59:15  No: 75460

回答ありがとうございます。
前者の回答についてなんですが、たしかに
Row Colプロパティを使用して設定しています。
で、Unloadする際にはセルのクリアはしてないですね。
単にアンロードしています。
なので、単にメモリを食いすぎているのが原因だとはおもうのですが。

そのMAXROWSを0にするという方法は
非常に有効ですね。
実際にためしましたが、今まで5分ほどかかっていた
3万件のデータを表示しているフォームのUnloadが
10秒程度になりました。
とりあえずこの手法でおこないたいと思います。
ありがとうございました。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加