Windows 7 および Windows Server 2008 R2 環境の Excel 2010 または Word 2010 で、連続したマクロ処理を実行するとマクロが停止する場合がある

現象
Windows 7 および Windows Server 2008 R2 環境の Excel 2010 または Word 2010 で、マクロを使用して、ファイルを開く、ファイルを閉じるなどの処理をセットで、おおよそ 100 回以上連続して行うと、マクロの実行中にリソース不足になり、処理が失敗してマクロが停止する場合があります。

この現象は、入力言語の既定の言語に、Microsoft Office IME 2010 を使用している場合に発生します。
回避策
この現象を回避するには、以下 4 つの方法のうち、いずれかを実行してください。

方法 1 : Microsoft Office IME 2010 の代わりに、Windows OS 標準の Microsoft IME を使用する

Windows 7 および Windows Server 2008 R2 に標準でインストールされている Microsoft IME を使用してください。

Microsoft IME を使用するには、以下の手順を実行してください。
  1. [スタート] ボタンをクリックし、[コントロールパネル] をクリックします。
  2. [時計、言語、および地域] をクリックします。
  3. [キーボードまたは入力方法の変更] をクリックします。
  4. [キーボードの変更] ボタンをクリックします。
  5. [テキスト サービスと入力言語] 画面の [既定の言語] で、[日本語 (日本) - 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 エクスプローラー] など) をクリックしてフォーカスを移動させてください。
状況
マイクロソフトでは、この問題について現在調査中です。詳細については、わかりしだいこの資料に掲載する予定です。
Proprietà

ID articolo: 2484082 - Ultima revisione: 10/04/2016 15:03:00 - Revisione: 4.0

Microsoft Excel 2010, Microsoft Word 2010, Microsoft Office Input Method Editor 2010

  • kbharmony kbexpertiseinter kbtshoot kbbug KB2484082
Feedback