Excelでマクロを実行すると、プログラムはマクロの完成に完全に注意を向けます。 (ほとんど擬人化されているように聞こえますか?)これは、マクロがデータのかなりの負荷の高い処理を行う場合、マクロの処理中にシステムが「ロックアップ」したように見える可能性があることを意味します。

ただし、マクロ処理はExcelにのみ影響しますのでご安心ください。

別のアプリケーションを開いて、マクロがバックグラウンドでExcelにチャンクされている間に、そのアプリケーション内で作業することができます。もちろん、システムがマクロに注意を払うと、他のプログラムの応答が遅くなる可能性がありますが、これはシステムで使用しているWindowsのバージョンによって異なります。理由?リソースの共有には、_multitaskingと呼ばれるプロセスが必要です。Windowsのバージョンが異なれば、マルチタスクはさまざまな方法で処理されます。

プログラムがマクロの実行で忙しいときに、Excelで他の作業をどのように実行できるのか疑問に思われるかもしれません。簡単— Excelの別のインスタンスを開いて([スタート]メニューから再度実行)、他の作業を行うだけです。あなたがする必要があるのは、Excelの最初のインスタンスのマクロによって使用されているのと同じブック(または複数のブック)で作業しようとしないことを確認することです。

少し作業を行うもう1つの方法は、マクロを少し変更することです。

マクロが長期間実行されている場合は、何らかのタイプのループを実行していることが原因である可能性があります。ループ内にDoEventsコマンドを追加することにより、マクロは実行を一時的に一時停止し、ユーザーのプロセスに制御を戻します。したがって、キーを押したり、マウスをクリックしたり、何かを入力し始めたりすると、DoEventsはそれに気づき、実行したいことを処理するために必要なタスクを実行します。

すべてのユーザー入力が処理されると、マクロはその途中で問題なく続行されます。

DoEventsを追加すると、マクロの速度が多少低下しますが、作業を少し続けることができます。 (Excelは依然として低速であることを理解してください。マクロの実行にはリソースが必要です。)DoEventsを追加すると、制御された方法でマクロから抜け出す機会も提供されます(Ctrl + Breakを使用)。

ただし、テスト(およびさらにテスト)を行うことによってのみ、自分の状況で最適に機能するものを理解できることを忘れないでください。

注:

このページ(または_ExcelTips_サイトの他のページ)で説明されているマクロの使用方法を知りたい場合は、役立つ情報を含む特別なページを用意しました。

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

このヒント(8971)は、Microsoft Excel 2007、2010、2013、2016、2019、およびOffice 365のExcelに適用されます。Excelの古いメニューインターフェイス用のこのヒントのバージョンは、次の場所にあります。