![Windows で Excel の CPU 使用率を上げる方法はありますか?](https://rvso.com/image/1605142/Windows%20%E3%81%A7%20Excel%20%E3%81%AE%20CPU%20%E4%BD%BF%E7%94%A8%E7%8E%87%E3%82%92%E4%B8%8A%E3%81%92%E3%82%8B%E6%96%B9%E6%B3%95%E3%81%AF%E3%81%82%E3%82%8A%E3%81%BE%E3%81%99%E3%81%8B%3F.png)
30 分以上かかっていた Excel サブを実行していたとき、タスク マネージャーで Excel が CPU を 35 ~ 55% しか使用していないことに気付きました。
CPU 使用率が何らかの方法で増加していれば、処理にかかる時間は短縮されたと思います。Excel や他のアプリの CPU 使用率を高める方法はありますか?
64 ビット Windows 10 Pro で 64 ビット Office を実行しています。
答え1
残念ながら、あなたが求めている答えはあなたが望むものではありません。
Excel シートは複数のスレッドで計算され、CPU を最大 100% 使用できますが、Excel マクロは単一のスレッドでのみ実行されます。
処理の大部分が VBA 内で避けられない場合は、コードを変更してパフォーマンスを向上できる可能性があります。
答え2
マクロ/サブを実行していないときでも、まさにこの問題が発生しましたが、解決しました。おそらく、他の人も私と同じような問題を抱えていて、解決策を必要としているかもしれません。タスク マネージャーでは、Excel が極めて大きく、非常に数式を多用するスプレッドシートに対して CPU を約 10% しか使用していないことが示されていました。開始したとき、計算に 5 分かかっていました (手動計算モードを使用)。さらに悪いことに、テーブルに行を挿入するのに数時間もかかりました。Excel 365 64 ビットを実行しています。
2 つのことを実行して、この問題を解決しました。おそらく、以下の 2 番目の手順 (Excel の優先度を上げる) だけで問題が解決したのだと思いますが、確信はありません。この手順は上記で提案されていますが、他のユーザーのマクロ処理の高速化には役立たなかったようです。そのため、この手順を単独で実行しても、私には役に立たなかったのではないかと思います (単独で実行した場合)。このスレッドを読んだのは、この問題を解決しようとしてかなり時間が経ってからで、手順 2 だけ (または最初に) 試しませんでした。それでも問題が解決しない場合は、以下の手順をすべて試してください。組み合わせが鍵となる可能性があります。
現在選択されている「電源プラン」設定の「電源オプション」の「詳細設定」の「プロセッサ電源管理」で、「最大プロセッサ状態」が 100% に設定されていることを確認してください。電源プランの詳細設定にプロセッサ電源管理設定が表示されない場合は、追加する必要があります。これを行う手順については、「電源オプションにプロセッサ電源管理が表示されないのはなぜですか?」のリンクを参照してください。 https://answers.microsoft.com/en-us/windows/forum/all/why-am-i-missing-the-processor-power-management/f5e30954-1843-464e-838b-015cc21d3ebdレジストリの変更を含めてこれを行う必要がありました。注: 最初にレジストリを変更しようとしたとき、指定された場所に属性 DWORD を追加できませんでした。そのため、管理者モードでエディターを実行しました (最初はうまくいかなかったようですが、もう一度試すとうまくいきました...理由はわかりません)。
IUnknown が上で示した指示に従って、タスク マネージャーで Excel の優先度を「高」に設定します。
Excel がすでにこの設定になっているので、これを行う必要はありませんでした。ただし、Excel リボンの「ファイル/オプション/詳細設定/数式/マルチスレッド計算を有効にする」が「このコンピューターのすべてのプロセッサを使用する」に設定されていることを確認してください。私の場合、これは 16 でした。
その後、タスク マネージャーで Excel の CPU 使用率が 98% に跳ね上がりました。スプレッドシートを計算するときにこの問題が発生している人の役に立つことを願っています (つまり、問題はマクロに関連していません)。