質問: エクセルVBAが高速なPCを導入したいと考えております。
回答: VBA自体はシングルCPUしか使用しない? シングルCPUというより、シングルコアですね。 現在実際の実行単位は「スレッド」という単位です。 ホストコンピュータではタスクといい、実行する最小単位です。 で、VBAは、 マルチスレッドによる並列処理はサポートしていない。 つまり、順序良く直列に処理していくしか方法はありません。 そのため、多くの演算が必要な場合、 1)VBAからVBScriptを起動して時間のかかる処理を行い、その結果をエクセルで取得する 2)Excel以外の別アプリケーション(別プロセス)でExcelを起動させてブックを開き、列の操作を行う(OLEオートメーションという技術です) OLE(Object Linking and Embedding )とは、Windowsの機能・仕様の一つで、複数のソフトウェアが連携したり、データを共有したりするための仕組み。 EXCELやWORDなどで利用可能。 3)Excelから別アプリケーションを起動して、列の計算は別アプリケーションで行い、結果をExcelに戻す(RFCという技術です) RFC(Remote Function Call)とは、他のコンピュータにあるモジュール(サブルーチン)を起動し、実行させる機能。受け渡しパラメータが指定可能。 私は2)と3)の方法で、ある一部の業務を開発しました。 別アプリケーションはパソコンで実行するのではなく、サーバーで実行しています。 「質問」 つまり、以下の考え方で問題ないでしょうか? エクセルシート計算速度を向上させる必要があるから→多コアCPU VBA計算速度を向上させる必要があるから→高ベースクロックCPU つまり、最新最速のCPUのパソコン? いいえ、CPUだけではなく、 1.高速なCPU 2.高速・大容量のメモリ(RAM)<==16GB以上で、かつ「仮想記憶装置は使用しない」に設定変更すること 3.浮動小数点演算装置(FPU) <==数値の演算が多数ある場合 が必要だと思います。