それで私はオンラインで検索しました、そして私が得たほとんどの答えはExcelに並行性がないと言いました。しかし、一部の投稿では、EXCEL2007は計算を高速化するためのマルチスレッドを提供していると述べています。私は本当に混乱しています、それは可能かどうか?
私のワークブックには、ユーザー定義関数を使用して計算されるセルがいくつかあります。これらのセルは、RTDサーバーを介して1秒に1回更新されます。つまり、これらの関数は並列に再計算されているように見えますが、実際には、Excelはそれらを順番にスケジュールするだけですか?コンピューターに複数のコアがあるかどうかに違いはありますか?
実際、これらの関数が順番に実行されている場合、次の2つは同等ですか?パフォーマンスと速度の面で。
1)
cell1 = userFunc(1, switch1)
cell2 = userFunc(2, switch2)
cell3 = userFunc(2, switch3)
および2)
cell = func()
where func() is
public function
if(switch1) call userfunc1
if(switch2) call userfunc2
....
end function
そして、関数に必要なすべての調整が行われたと仮定しましょう。つまり、最初のものの方が速いでしょうか?
どうもありがとう!!!
更新:VBAに実際の同時実行性がない場合、それは関数が順番に呼び出され、ロックの問題なしに共有グローバル変数にアクセスできることを意味しますか?事実上すべての関数で使用されるAPIオブジェクトがあるので、使用するたびに初期化するのではなく、共有できますか?このオブジェクトは、いくつかの静的関数を呼び出すために使用される単なるAPIであり、オブジェクト自体に変更や変更はありません。