多くの行列を集計する必要があるプロジェクトがあります。現在のところ、これは反復ごとにwhileループを使用して実行されます。おそらく、組み込みプログラミングを使用して行列を合計するより速い方法がありますか?ループを使用しない和行列
これまでの私の研究から、VBAで行われたすべての行列の集計はルーピングによるものであり、実行速度は向上しません。
多くの行列を集計する必要があるプロジェクトがあります。現在のところ、これは反復ごとにwhileループを使用して実行されます。おそらく、組み込みプログラミングを使用して行列を合計するより速い方法がありますか?ループを使用しない和行列
これまでの私の研究から、VBAで行われたすべての行列の集計はルーピングによるものであり、実行速度は向上しません。
Evaluate
を使用すると、行列を範囲として合計できます。たとえば、
Dim ar
ar = Sheet1.Evaluate("A1:C3 + E1:G3 + I1:K3")
は、3つの行列の合計である配列(行列)を返します。
しかし、要素ごとにVBA配列を合計し、結果配列を返すことを意味する場合、ループは唯一のオプションです。
私は、返信いただきありがとうございます!評価のためにデータを第三者のプログラムにエクスポートし、その結果をExcelに戻す必要があるかもしれません。 – TJYen
@TJYenあなたの目標はマルチプロセッシング機能を活用することだと思います。その場合、実際にはVBAループはそれをしません(Exce/Evaluateバージョンはおそらくそれを行いますが、確かではない、いくつかのテストが必要です)。 –
ループをアンロールすることはできますが、パフォーマンスが懸念される場合は、パフォーマンスの高い.Netマトリックスライブラリを使用してください。 – tadman