投稿日 | : 2003/08/26(Tue) 10:12 |
投稿者 | : 花ちゃん |
Eメール | : |
URL | : |
タイトル | : Re^3: VBからExcelのセルに値を代入するときの処理速度 |
私の言っているのは、プログラムの処理が早い・遅いと言う事は一つの処理に原因の多くが
ある場合と全体の処理の流れにある場合等要因は色々あると思うのですが。
例えば、大阪から東京へ移動するには何で行けば一番早いですか?
飛行機・新幹線・車 答えは車でした。夜の1時に出発する必要があったからです。
やっている事によっては、Excelを使用せずMS(H)FlexGridコントロール等を使った方がいい場合も
あるかと思います。
今回のイベント処理の場合でも、既存のExcelファイルを開いていて、すでにそのファイルの中には
データが入っている場合と、そうでない場合は根本的に方法が変わってくるかと思います。
細かい事をいえばこれだって 'objXlSheetはプライベート変数です。 事前バインディング
か実行時バインディングなのか解らないし、通常、事前バインディングの方が処理が早いとされて
いますが?。
このイベント処理を見る限りでは、早くなるかどうかは解りませんが、Excel上でマクロを組んで
そのマクロをVBから実行するといった方法位しか思い浮かびません。
というより同じセルにsとCDate(txtDate.Text)を入れているようにしか見えないのですが?。
これも掲載を省略されているのでしょうか? 私には理解出来ません。
CDate(txtDate.Text)の部分にしても一々プロパティを参照するのではなく変数にしておけば
少しは処理が早くなります。(ここのプログラムの最適化(高速化)を参照)
後は、仮定での話になるかと思いますし、一般的には読込・書込みの回数を減らすように
前回の回答の方法や魔界の仮面弁士さんの回答のような方法を取り入れる事かと思います。
又、あらかじめ数値が入っているなら、式も入れておくと言う方法もあるかと思います。
私のよくやる方法は、ここの経過時間計測色々で紹介している関数を使ってプログラムの個々の
処理時間を測定しながらプログラムを試行錯誤しながら無駄な処理を省いたり、早い処理方法を
見つけております。