修正:Microsoft Excelは別のアプリケーションがOLEアクションを完了するのを待っています

いくつかのOfficeユーザー、VBAスクリプトを実行しようとしたり、BI起動パッドからExcelを実行しようとすると、「Microsoftは別のアプリケーションがOLEアクションを完了するのを待っています」エラーを受け取ると報告しています。この問題は、Windows 7、Windows 8.1、Windows 10を含む最近のすべてのWindowsバージョンで発生すると報告されています)

Microsoft Excelは、別のアプリケーションがOLEアクションを完了するのを待機しています

OLEアクションとは何ですか?

Object Linking&Embedding(OLE)アクションは、基本的に、操作を正常に完了するために、さまざまなOfficeアプリケーション(Word、Excel、Powerpoint、Sharepoint)が他のアプリケーションと通信できるように設計されたメカニズムです。

「Microsoft Excelは別のアプリケーションがOLEアクションを完了するのを待っています」エラーの原因は何ですか?

この問題については、さまざまなユーザーレポートとMicrosoftの公式ドキュメントを調べました。私たちは問題をテストマシンの1つで再現することもできました。

Excelが別のアプリケーション(Wordなど)に通信要求を発行する場合、ExcelはOLEオブジェクトを使用してそれを実行し、アプリケーションからの応答を待ちます。応答がデフォルトの時間しきい値に達しない場合、Excelはエンドユーザーに次の警告をトリガーします:「Microsoft Excelは別のアプリケーションがOLEアクションを完了するのを待っています」

エラーメッセージは常に同じですが、Microsoft Excelでこの特定のエラーをトリガーするかなり一般的なシナリオがいくつかあります。

  • ExcelからDDEプロトコルが無効になっている –この問題は、Excelの設定からDynamic Data Exchange(DDE)プロトコルが無効になっているために発生している可能性があり ます。
  • 破損したOfficeインストール –一部の影響を受けるユーザーは、Officeインストール全体を再インストールまたは修復した後に問題が解決したと報告しています。
  • Adobe Acrobat PDFMakerアドインがExcelと競合しています – PDFMakerプラグインを無効化またはアンインストールすることで問題を解決できるユーザーの報告が複数あります。
  • IE(Internet Explorer)プロセスがDDEを妨害している –これは通常、ユーザーがMicrosoft Excelでファイルを保存しようとしたときに発生すると報告されています。この場合の解決策は、プロセスを手動で閉じることです。

現在、この特定のエラーメッセージの解決に苦労している場合、この記事では、トラブルシューティングの手順をいくつか紹介します。以下に、同様の状況にある他のユーザーが問題の解決に成功した方法をいくつか示します。

最良の結果を得るには、問題を解決するのに効果的な修正が見つかるまで、以下の方法を順番に実行してください。さぁ、始めよう

方法1:Adobe Acrobat PDFMakerをアンインストールする(該当する場合)

一部のユーザーは、Adobe Acrobat PDF Makerアドインをアンインストールすることでエラーメッセージを解決できました。結局のところ、このプラグインはMicrosoft Excelの特定のバージョンと競合する可能性があります。

PDF Makerと互換性のあるOfficeバージョンのリストは次のとおりです。

  • Office 2010(Office 14)32ビットおよび64ビット
  • Office 2013(Office 15)32ビットおよび64ビット
  • Office 2016(Office 16)32ビットおよび64ビット

注: Adobeの完全な互換性ガイド(こちら)を参照してください。

このシナリオが当てはまり、PDF Makerにそれほど依存していない場合は、Adobe Acrobat PDFMakerアドインを無効にするかアンインストールすることで問題を解決できる可能性があります。

これを行う方法のクイックガイドを次に示します。

更新:このFix-it(ここ)を使用して、PDFMakerアドインを自動的に無効にすることもできます。Windows 10、Windows 8.1、Windows 7、Windows Vistaを含む最近のすべてのWindowsバージョンと互換性があります。

  1. Microsoft Excelを開き、リボンバーを使用して[ファイル ]をクリックします。Microsoft Excelを開き、ファイルに移動します
  2. [ファイル]メニューの[ オプション ] (メニューリストの下部)をクリックします。[ファイル]> [オプション]に移動します
  3. Excelの[オプション]メニューで、左側のメニューを使用して[ アドイン ]をクリックします。次に、右側のペインに移動し、[管理 ]に関連付けられたドロップダウンメニューを展開して、[ COMアドイン ] を選択します。次に、[ Go… ]ボタンをクリックして、Com Add-insメニューを起動します。アドインに移動し、ドロップダウンメニューから[COMアドイン]を選択して、[移動]をクリックします。
  4. [ COMアドイン ] ボックスで、Acrobat PDFMaker Office COMアドインに関連付けられているボックスをオフにするか、選択して[削除]をクリックして完全に削除します。
  5. コンピュータを再起動し、次の起動が完了したら、以前にエラーを生成していた手順を再現します。

それでも「Microsoft Excelは別のアプリケーションがOLEアクションを完了するのを待っています」というエラーが発生する場合は、下の次の方法に進んでください。

方法2:Excelの設定でDDEを使用するアプリケーションを許可する

多くのユーザーが報告しているように、Dynamic Data Exchange(DDE)プロトコルを使用してExcelと通信しようとするアプリケーションを無視するようにMicrosoft Excelが設定されている場合、問題が発生する可能性があります。

たとえば、WindowsエクスプローラーでExcelブックをダブルクリックするとします。コマンドが登録されるとすぐに、動的データ交換(DDE)がExcelに送信されます。この交換により、ダブルクリックしたワークブックを開くようにExcelに指示されます。

Excelが動的データ交換プロトコルを使用するアプリケーションを無視するように設定されている場合、交換は行われず、代わりに「Microsoft Excelは別のアプリケーションがOLEアクションを完了するのを待っています」というエラーメッセージが表示されます。

幸い、Excelの[ オプション ]メニューにアクセスしてDDEプロトコルを有効にすることで、この問題を簡単に修正できます。これを行う方法のクイックガイドを次に示します。

  1. Microsoft Excelを開き、[ファイル ]をクリックします。新しいブックまたは新しいドキュメントを開くかどうかは関係ありません。Microsoft Excelを開き、ファイルに移動します
  2. 、ファイルメニュー、をクリックしてオプションの左ペインから。[ファイル]> [オプション]に移動します
  3. Excelのオプション]メニュー、をクリックして高度の左側のメニューからタブ。次に、右側のペインに移動し、[ 一般]セクションに到達するまで下にスクロールします。そこに到達したら、Dynamic Data Exchange(DDE)を使用する他のアプリケーション無視するに関連付けられているボックスがオフになっていることを確認してください。ExcelでDDEプロトコルを有効にする
  4. Click Ok to save the changes, then restart Microsoft Excel. Then, repeat the operation that was previously causing the “Microsoft is waiting for another application to complete an OLE action” error and see if the issue is still occurring.

If you’re still encountering the same error message, move over to the next method below.

Method 3: Killing the Internet Explorer (IE) process

Several users seeing the “Microsoft is waiting for another application to complete an OLE action” error when trying to save the file, you might be seeing the error because of an IE process is interfering with the Dynamic Data Exchange (DDE) exchange.

Users in a similar situation have reported that the issue was resolved after they killed the IE process manually. Here’s a quick guide on how to do this:

  1. Press Ctrl + Shift + Esc to open Task Manager.
  2. Inside Task Manager, go to the Processes tab and see if you have any process belonging to Internet Explorer that is currently active.
  3. If you see one open, simply right-click on it and choose End task to close it.Internet Explorer(IE)プロセスを閉じる
  4. Return to Excel and see if the “Microsoft is waiting for another application to complete an OLE action” error is still occurring when you’re trying to save the file.

If you’re still encountering the same error, move down to the next method below.

Method 4: Suppressing the Excel Application Messaging

If you’re seeing the error message when trying to run a VBA script, one workaround would be to suppress the application messaging by using a tiny piece of code.

But keep in mind that this will not treat the issue itself – It’s only a workaround that prevents the error message from appearing. However, it will be helpful if your only goal is to prevent the error message from appearing.

Here’s a quick guide on inserting a VBA code to excel Workbook that will suppress the excel application messaging:

  1. Open your workbook in Excel and press Alt + F11 to open the Visual Basic Editor (VBE).
  2. In the Project bar (left-hand side), right-click on ThisWorkbook and choose Insert > Module.ThisWorkbookを右クリックし、[挿入]> [モジュール]を選択します
  3. In the newly created module, paste the following code (in the right section of the screen):
    Private Declare Function CoRegisterMessageFilter Lib "ole32" (ByVal IFilterIn As Long, ByRef PreviousFilter) As Long Public Sub KillMessageFilter()    Dim IMsgFilter As Long    CoRegisterMessageFilter 0&, IMsgFilter End Sub Public Sub RestoreMessageFilter()    Dim IMsgFilter As Long    CoRegisterMessageFilter IMsgFilter, IMsgFilter End Sub

    Update: Other users have reported that they managed to prevent the error prompt from appearing by using the following VBA code:

    Sub CreateXYZ()       Dim wdApp As Object     Dim wd As Object          On Error Resume Next     Set wdApp = GetObject(, "Word.Application")     If Err.Number  0 Then         Set wdApp = CreateObject("Word.Application")     End If     On Error GoTo 0     Set wd = wdApp.Documents.Open(ThisWorkbook.Path & Application.PathSeparator & "XYZ template.docm")     wdApp.Visible = True     Range("A1:B10").CopyPicture xlScreen     wd.Range.Paste End Sub
  4. Press Ctrl + S and click No when you see the “The following features cannot be saved in macro-free workbook” warning.警告プロンプトで[いいえ]をクリックします
  5. Then, choose a suitable location for the modified workbook set a proper name and make sure that the Save as type is set to Excel Macro-Enabled Workbook. Once everything is in order, click on Save to create the Excel Macro-Enabled Workbook.Excelマクロ有効ワークブックの作成
  6. Press Alt + Q to close the editor and go back to your workbook. Once you’re back in your editor press Alt + F8, select the Macro that you’ve just created and click Run.

Once this procedure is complete, you should no longer see the ‘Microsoft Excel is waiting for another application to complete an OLE action’ error with this WorkBook (even though it might still occur in the background).

Method 5: Disable Compatibility Mode (if applicable)

Some users have managed to resolve the issue after discovering that the Excel executable was running in Compatibility mode. This can happen due to manual user intervention or a 3rd party application.

If you suspect that Excel is running in compatibility mode, disable it and see if the ‘Microsoft Excel is waiting for another application to complete an OLE action’ error stops appearing. Typically, the error is reported to occur if the Excel executable is configured to run in Compatibility mode with Windows Vista and older.

Here’s a quick guide on disabling Compatibility Mode:

  1. Right-click the Excel executable (or the shortcut) and choose Properties.Excel実行可能ファイルを右クリックし、[プロパティ]を選択します
  2. [ プロパティ]ウィンドウで、[ 互換性 ]タブに移動し、[ このプログラムを互換モード実行する]に関連付けられているボックスをオフにしますこのプログラムを互換モードで実行するのチェックを外します