Geoffは、計算時にExcelのCPU使用率が50%でピークに達することに気づきました。

彼はこの障壁を打破する方法があるかどうか疑問に思います。彼はApplication.MultiThreadedCalculation.ThreadCountをさまざまな値に設定しようとし、50%の制限を約58%に曲げることができましたが、未開発の処理能力はまだ大量にあります。

システムリソースのどれだけを特定のタスク(Excelの実行など)に割り当てるかを変更する1つの方法は、オペレーティングシステムによってタスクに課せられる重要度を変更することです。これを行うには、タスクマネージャーを表示し、Excel.exeプロセスを右クリックして、[優先度の設定]を選択します。 (Excel.exeは、Windows8およびWindows10のタスクマネージャーの[詳細]タブにあります。)6つの優先オプションが利用可能です。 Excel.exeは、「通常」の優先度レベルに設定されている可能性があります。 「通常より上」または「高」のいずれかを選択することにより、オペレーティングシステムによってExcel.exeに割り当てられるリソースを増やすことができます。

「リアルタイム」を選択することもできますが、この選択はお勧めしません。どうして?その場合、Windowsは、オペレーティングシステム自体が使用するプロセスを含め、システム上の他のすべてのプロセスを犠牲にしてExcel.exeを優先するためです。基本的に、この設定は、システム上の他の何もExcelを中断できないことを意味します。

いいですね。 Excelが無限ループに入ったり、タスク(巨大なブックの計算など)を完了するのに非常に長い時間がかかると、システム全体がロックされ、再起動を余儀なくされるため、実際には災害のレシピになる可能性があります。

リアルタイムの優先順位で実行すると、他のシステムプロセスが不足し、必要なシステムメンテナンスが妨げられる可能性もあります。幸い、ExcelがCPUを非常に長く保持することはめったにないため、ほとんどの場合、悪影響はありませんが、明示的に設計されていないプロセスをリアルタイム優先度に上げることはできません。

Excelの優先度をリアルタイムに引き上げたとしても、50%を超える使用率を得ることができない場合があります。これは、マシンに複数のCPUまたはマルチコアCPUがある場合に特に当てはまります。システムがこれらの追加のCPU(実数または仮想)をどのように利用するかは、いくつかの要因によって異なります。最も重要なのは、複数のCPUでスレッド化を利用するようにプログラム(この場合はExcel)をプログラムする方法です。 (幸いなことに、最新バージョンのExcelは、マルチスレッドの機会を非常にうまく活用しています。)

Excelがメモリをどのように使用するかについて詳しく知りたい場合は、次の役立つページで詳細情報を見つけることができます。

http://www.decisionmodels.com/memlimitsc.htm

_ExcelTips_は、費用効果の高いMicrosoftExcelトレーニングのソースです。

このヒント(11056)は、Microsoft Excel 2007、2010、2013、2016、2019、およびOffice365のExcelに適用されます。