Excel2010でマクロ(VBA)が遅い・重たい・止まる。
Excel2010作成したマクロ(VBA)を実行すると、処理が急に遅くなる。。。 一体なぜ?
取りあえずググってみたところ、何でも原因はWindows7 + Excel2010の環境で発生する「Micorosoftさんの不具合」のようです(汗)
Windows 7 および Windows Server 2008 R2 環境の Excel 2010 または Word 2010 で、連続したマクロ処理を実行するとマクロが停止する場合がある
しかも、現時点(2014年4月現在)で、まだ原因調査中で改善していないようです(汗)
マイクロソフトでは、この問題について現在調査中です。詳細については、わかりしだいこの資料に掲載する予定です。
Microsoftさんが提唱している回避方法は以下の通りですが、私の場合は全部試してみましたが改善しませんでした(泣)
※多くの方は、下記「方法2」のDoEventsを入れることで解決するみたいです。
方法 1 : Microsoft Office IME 2010 の代わりに、Windows OS 標準の Microsoft IME を使用する
Windows 7 および Windows Server 2008 R2 に標準でインストールされている Microsoft IME を使用してください。
Microsoft IME を使用するには、以下の手順を実行してください。
[スタート] ボタンをクリックし、[コントロールパネル] をクリックします。
[時計、言語、および地域] をクリックします。
[キーボードまたは入力方法の変更] をクリックします。
[キーボードの変更] ボタンをクリックします。
[テキスト サービスと入力言語] 画面の [既定の言語] で、[日本語 (日本) – Microsoft IME] をクリックし、[OK] をクリックします。補足 :
[既定の言語] で [日本語 (日本) – Microsoft IME] が表示されない場合は、[追加] ボタンをクリックし、[入力言語の追加] 画面のリストから [日本語 (日本)] をクリックして、[Microsoft IME] のチェック ボックスをオンにし、[OK] をクリックします。その後、手順 5 を実行します。
Microsoft IME を使用することで現象が回避する場合、累積的な更新プログラム 2687611 を適用することで Microsoft Office IME 2010 の問題が修正され、問題を回避できる可能性があります。方法 2 : DoEvents 関数をマクロ内に挿入する
DoEvents 関数を使用することで、VBA 処理中でも一度 OS に対し制御を戻すことができます。ファイルを開く、ファイルを閉じるなどの連続処理中に OS に処理を戻すことでハンドル解放処理が行われ現象が回避されます。
ループで連続処理を行っている場合は、ある一定の頻度で DoEvents 関数を実行してください。 たとえば、10 回のループ毎に、DoEvents 関数 を 1 回実行することで問題なく動作します。
方法 3 : マクロの連続処理を実行中はウィンドウを非表示する
ファイルを開く、ファイルを閉じるなどのマクロによる連続処理を行う前に、マクロを使用して Excel 2010 または Word 2010 のウィンドウを非表示にしてください。
方法 4 : マクロ開始後に [メモ帳] や [Windows エクスプローラー] など別ウィンドウにフォーカスを移動する
ファイルを開く、ファイルを閉じるなどのマクロによる連続処理を開始後に、実行中の Excel 2010 または Word 2010 以外のウィンドウ ([メモ帳] や [Windows エクスプローラー] など) をクリックしてフォーカスを移動させてください。
未だに原因調査中のところから、このまま解決しないまま放置されるのでは。。。
同様の問題が発生しないバージョン(Excel2013)も既に出ているわけですし、そんな気がしてなりません。
ですが、Windows7を購入したときに標準で2010がついてくる時期だったので、
Windows7 + Excel2010を使っている企業さんは結構多いと思います。
実際、最近お手伝いした企業さんもメインで使っている端末環境はWindows7でExcelは2010とのことでした。
お客様には、そういう不具合があることを理解してもらった上で開発を請け負わないと、
後になってトラブルが発生するかもしれないので注意が必要です。
Excel2007や2013ではサクサク処理できるので、最悪その環境を準備してもらうしかないですね。
うーん、早く改善してもらいたいものです。
※本記事についてのお問い合わせは、お受けしておりません。
自社サービスの紹介
適性検査「ポテクト」|強み・弱み・性格・仕事力を徹底診断。法人の入社採用テストや社員研修、就活の自己分析まで。無料版あり