セルの読み取りと書き込みに関連するオーバーヘッドが原因で、Excel VBA でループが遅くなるという話ではありません。私が話しているのは、変数/配列を使用して「メモリ内」でループすることです。
1 に答える
5
ほぼ同じことを行う 2 つのループがあると仮定すると、C/C++ はマシン コードにコンパイルされるため高速である可能性が非常に高く、VBA には VBA インタープリターと Excel 自体のオーバーヘッドがあります。ループを実行するためにデータを C/C++ にマーシャリングする場合は、マーシャリングのオーバーヘッドが発生します。どれだけそれを行うかによって異なります。
ただし、ループの方が速いという理由だけでプラットフォームを選択するのではなく、ソリューションに適合し、最も効率的なプラットフォームを選択してください。
私の経験では、ループが遅いのではなく、ループの内部が遅いのです。おそらくご存じのとおり、セル単位のアクセスは、直接配列アクセスよりも Excel の方がはるかに遅くなります。
どれくらい速くなるかを知る必要がある場合は、測定してください! C または C++ で単純な VBA ループと同等のループ (またはできる限り近いループ) を作成し、どちらが高速か (およびどれだけ高速か) を確認します。
于 2013-03-14T13:47:34.287 に答える