「プログラムにコマンドを送信しているときに、エラーが発生しました」のメッセージについて
【お知らせ】
この記事は Office サポートチーム フォーラムへ移行しました。今後はフォーラムの記事をご覧ください。
こんにちは、Office サポートの町口です。
本記事では Excel ファイルを開くときに表示される「プログラムにコマンドを送信しているときに、エラーが発生しました」のメッセージについて説明します。
目次
■1 現象 ■2 動作説明 ■3 対応方法 ■4 切り分け方法 ■5 関連資料
■1 現象
エクスプローラーから Excel ファイルを開くときに、以下のメッセージが表示されることがあります。
■2 動作説明
「プログラムにコマンドを送信しているときにエラーが発生しました」というメッセージは、Excel がファイルを開く際に利用している DDE (Dynamic Data Exchange の略) 通信の通信先を見つけることができなかった場合や、何らかの理由により時間がかかり正常に処理できなかったときにエクスプローラーが表示する汎用的なメッセージです。
Excel ファイルをダブルクリックした場合の動作概要 :
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
エクスプローラーでファイルのアイコンをダブルクリックすると、動的データ交換 (DDE) メッセージが エクスプローラーからそのファイル拡張子に関連づけられたアプリケーションに送信されます。Excel ファイルをダブルクリックした場合は、以下のような流れで処理が実行されます。
ここでは xls 形式を例に説明します。
1. ユーザーが、xls 形式のファイルをダブルクリックします。
2. ファイルの拡張子にしたがって、起動方法をレジストリから確認します。
2.1 HKCR\.xls の "既定" の値「Excel.Sheet.8」を確認後、"HKCR\Excel.Sheet.8" を参照します。
2.2 HKCR\Excel.Sheet.8\shell\open\command の "既定" の値を確認します。
2.3 ここで、/dde が設定されている場合、DDE 通信が必要と判断します。
3. DDE 通信を行うための、通信先アプリケーションがあるかどうかを確認します。
4. 起動済みの該当アプリケーションがあれば、それに対して DDE 通信でファイル名を渡します。
もし、この時点で DDE 通信が失敗すると「プログラムにコマンドを送信しているときにエラーが発生しました」のメッセージが表示されます。
成功するとファイルが開き、ここで処理が終了します。
5. 3 の処理時に起動済みの該当アプリケーションがない場合は、対象のアプリケーション (ここでは、Excel) を起動します。
6. DDE 通信で通信先アプリケーションがあるかどうかを改めて確認します。
7. DDE 通信でファイル名を渡します。
8. もし 6 もしくは 7 で DDE 通信が失敗した場合も、今回のメッセージが表示されます。
成功するとファイルが開き、ここで処理が終了します。
DDE 通信が失敗する例 :
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
DDE 通信のタイムアウト値は 30 秒となります。以下のような理由で処理に時間がかかり、30 秒以内に DDE 通信が成功しない場合は、このメッセージが表示されます。
ア) OS の起動またはスリープからの復帰直後でシステムの負荷が高い
イ) マシンの処理能力に依存して全体的に処理が遅い
ウ) アドイン読み込み、あるいは .NET で作成されたアドインの署名検証で時間がかかる
エ) Office アプリケーションが複数バージョン混在していて、Excel の起動に時間がかかる
オ) 常駐アプリケーションや監視ソフトの影響で、Excel の起動に時間がかかる
■3 対応方法
ファイルを開こうとするタイミングや、マシンの負荷状況、処理能力にも影響を受けるため、このメッセージを完全に抑止する方法はありません。
このメッセージは、その瞬間に該当ファイルを開くことに失敗したというエラーであり、潜在的な問題があることを示すものではありません。そのため、後述の切り分け実施後も OS 起動直後等回避できないパターンは、以下の手順のように、このメッセージで [OK] をクリックして、再度開きたいファイルをダブルクリックしてファイルを開いてください。
手順 :
- エクスプローラーで Excel ファイルをダブルクリックします。
- 「プログラムにコマンドを送信しているときにエラーが発生しました」のメッセージが表示されたら、[OK] をクリックします。このとき、Excel アプリケーション ウィンドウは閉じないようにします。
- 再度、エクスプローラーで Excel ファイルをダブルクリックします。
■4 切り分け方法 (緩和策)
以下の切り分けを実施することで、何の影響で発生しているかある程度把握することができ、また現象の発生を緩和する方法ともなりますので適宜実施してください。
a) DDE を無視する
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
このメッセージは、Excel のオプションで、[Dynamic Data Exchange (DDE) を使用する他のアプリケーションを無視する] チェック ボックスが選択されている場合に発生する可能性があります。
Windows エクスプローラーで Excel ブックをダブルクリックすると、Dynamic Data Exchange (DDE) のメッセージが Excel に送信されます。このメッセージにより、ユーザーがダブルクリックした Excel のブックが開かれます。
DDE を無視する設定にした場合、Excel では、他のプログラムによって送信される DDE メッセージが無視されます。したがって、Windows エクスプローラーによって Excel に送信された DDE メッセージは無視され、ダブルクリックしたブックは開かれません。
手順 :
- [ファイル] タブの [オプション] をクリックします。
- [詳細設定] をクリックします。
- [全般] の [Dynamic Data Exchange (DDE) を使用する他のアプリケーションを無視する] チェック ボックスをオフにして、[OK] をクリックします。
b) User Experience Virtualization (UE-V) を修復する
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
更新プログラム Experience Virtualization (UE-V) を実行している場合は、2927019 の修正プログラムをインストールします。この操作を実行するには、次のマイクロソフト サポート技術情報を参照してください。
2927019 マイクロソフトのユーザー エクスペリエンスの仮想化 2.0 の修正プログラム パッケージ 1
UE-V を実行しているかどうかがわからない場合は、コントロール パネルの [プログラムと機能] でプログラムの一覧を確認します。「企業設定センター」のエントリでは、UE-V を実行していることを示します。
c) ファイルの関連付けをリセットする
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Excel ファイルの関連付けを再設定します。
手順 :
- 検索画面で、”既定プログラム” と入力して検索し、[既定プログラムの設定] をクリックします。
- [Excel] を選択し、[既定でこのプログラムで開く項目を選択する] をクリックします。
- [プログラムの関連付けを設定します] の画面で、[すべて選択] をクリックし、[保存] をクリックします。
d) Office アプリケーションを修復する
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
このメッセージが表示されるバージョンの Office アプリケーションを修復します。
手順 :
- 検索画面で、”コントロール パネル” と入力して検索し、[プログラムのアンインストール] をクリックします。
- このメッセージが表示されるバージョンの Office アプリケーションを選択して、[変更] をクリックします。
- クイック実行版の場合は [オンラインの修復]、[修復] の準備、Windows インストーラー版の場合は [修復]、[続行] の順にクリックします。
- 修復の完了後、コンピューターの再起動が必要な場合があります。
e)-1 アドインをオフにする
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Excel アドインや COM アドインの影響有無を確認するために、すべてのアドインを無効にします。
手順 :
- [ファイル] タブの [オプション] ボタンをクリックします。
- [Excel のオプション] ダイアログで、[アドイン] を選択し "管理" から "Excel アドイン" が選択されていることを確認し、[設定] ボタンをクリックします。
- "有効なアドイン" にチェックが入っている項目がある場合、すべてのチェックを外し、その後 [OK] をクリックします。
- 再度、[ファイル] タブをクリックし、[オプション] ボタンをクリックします。
- [Excel のオプション] ダイアログで、[アドイン] を選択し "管理" から "COM アドイン" が選択されていることを確認し、[設定] ボタンをクリックします。
- "使用できるアドイン" にチェックが入っている項目がある場合、すべてのチェックを外し、その後 [OK] をクリックします。
e)-2 発行元証明書の取り消しを確認しない
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Excel アドイン やそれに関連する VSTO 2010 ランタイム (dll) には証明書が付与されています。Excel が起動する際にこれらは同時に読み込まれますが、証明書の発行元証明書が失効されていないかを確認するために、CRL (証明書失効リスト) 配布ポイントへ接続が試行されます。この時 "ネットワークには接続されていてインターネットには接続できない環境" 等、ネットーワークの構成によっては、タイムアウトするまでネットワークの応答待ちが発生し、その影響でこのメッセージが表示される場合があります。
特定のアドインを無効化することでこのメッセージが表示されなくなる場合は、アドインを有効化しても、以下の手順で、証明書の発行元証明書が失効されていないかを確認する処理を無効化することで、このメッセージの表示を緩和できる可能性があります。
手順 :
- ブラウザをすべて終了します。
- 検索画面で、” コントロール パネル” と入力して検索し、[ネットワークとインターネット] をクリックします。
- [インターネットオプション] を開きます。
- [詳細設定] タブを開き、設定の一覧から [セキュリティ] 内の [発行元証明書の取り消しを確認する] のチェックをオフにして [適用]、[OK] の順にクリックします。
e)-3 サーバーの証明書失効を確認しない
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
特定のアドインを無効化することでこのメッセージが表示されなくなる場合は、アドインを有効化しても、以下の手順で、サーバーの証明書失効を確認する処理を無効化することで、このメッセージの表示を緩和できる可能性があります。
手順 :
- ブラウザをすべて終了します。
- 検索画面で、” コントロール パネル” と入力して検索し、[ネットワークとインターネット] をクリックします。
- [インターネットオプション] を開きます。
- [詳細設定] タブを開き、設定の一覧から [セキュリティ] 内の [サーバーの証明書失効を確認する] のチェックをオフにして [適用]、[OK] の順にクリックします。
f) ハードウェア アクセラレータを無効にする
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
ビデオ カード ドライバーの影響でこのメッセージが表示される場合があります。この場合はハードウェア アクセラレータを無効化することで、このメッセージの表示を緩和できる可能性があります。
この方法で現象の発生が緩和する場合は、別途、ビデオ カード ドライバーの更新を定期的にチェックしてください。
手順 :
- [ファイル] タブの [オプション] をクリックします。
- [Excel のオプション] ダイアログで、[詳細設定] をクリックします。
- [表示] の [ハードウェア グラフィック アクセラレータを無効にする] にチェックを入れて [OK] をクリックします。
注 : ハードウェア アクセラレータの設定の詳細については、次のマイクロソフト サポート技術情報を参照してください。
2768648 Office クライアント アプリケーションの表示の問題
g) 最新の更新プログラムをチェックしてインストールする
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
推奨される更新プログラムを自動的にダウンロードしてインストールするには、Windows Update を設定する必要があります。重要な更新プログラム、推奨される更新プログラム、およびオプションの更新プログラムをすべてインストールすると、古いファイルが置き換えられ、脆弱性も修正されて、本件に限らず現象を解決できることがよくあります。
Office の更新プログラムに関する詳細については、マイクロソフト サポート技術情報の番号をクリックしてください。
h) Excel.exe のプロパティを確認する
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Excel.exe のプロパティで後述の設定をしていないか確認します。
手順 :
- エクスプローラーの検索ボックスで “Excel.exe” を探します。
- Excel.exe を選択して右クリックし、[プロパティ] を開きます。
- [互換性] タブで、以下の項目にチェックが入っている場合は、両方ともオフにします。
[互換モード] - [互換モードでこのプログラムを実行する]
[特権レベル] - [管理者としてこのプログラムを実行する]
i) レジストリ UseOnlineContent を設定する
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
オフラインで利用している環境やサインインして利用していない環境で以下のレジストリを設定して、ユーザーがインターネット上の Office 2016 リソースにアクセスしないようにします。
キー : HKEY_CURRENT_USER\Software\Microsoft\Office\16.0\Common\Internet
名前 : UseOnlineContent
種類 : REG_DWORD
値 : 0 または 1
値の説明)
0 : ユーザーがインターネット上の Office 2016 リソースにアクセスすることを禁止します。
1 : ユーザーがインターネット上の Office 2016 リソースにアクセスできるかどうかを自身で選択できるようにします。(以下の設定のチェック無し)
2 : (既定) ユーザーがインターネット上の Office 2016 リソースにアクセスすることを許可します。(以下の設定のチェック有り)
[Excel のオプション] - [セキュリティセンター] - [セキュリティセンターの設定] - [プライバシーオプション] 内の [Office を Microsoft のオンライン サービスに接続して、使用状況や環境設定に関連する機能を提供できるようにしますか?]
j) Office アプリケーションを単一バージョンにする
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1 台の PC に複数バージョンの Office アプリケーションをインストールしている影響で Excel の起動に時間がかかり、このメッセージが表示される場合があります。そのため、主に使用するバージョンのみを残して、異なるバージョンの Office 製品をアンインストールします。
例 :
Office 2013 と Office IME 2010 をインストールしている構成で発生例があります。この場合、Office IME 2010 を削除します。
なお、Microsoft では 1 台の PC に複数バージョンの Office アプリケーションをインストールする構成は推奨していません。詳細は次の記事を確認してください。
2121447 Office 2010 スイートおよび Office 2010 プログラムを、他のバージョンの Office を実行しているコンピューターで使用する方法について
2784668 Office 2013 スイートおよび Office 2013 プログラム (MSI による展開) を、他のバージョンの Office を実行しているコンピューターで使用する方法について
k) 常駐アプリケーションの影響を確認する
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
常駐アプリケーションの影響でこのメッセージが表示される場合があります。Windows のクリーンブートや常駐アプリケーションを一時的に停止してこのメッセージが表示されなくなるか確認します。
手順 :
- 以下のサポート技術情報を参照いただき、Windows のクリーンブートを実行して、このメッセージが表示されなくなるか確認します。
929135 Windows のクリーン ブートを実行する方法
- Windows のクリーンブートでは停止しないソフトウェアが影響している可能性もあるため、ウィルス対策ソフトや、ユーザーの操作を監視するアプリケーションを明示的に停止、または Office アプリケーションを監視の対象から除外して、このメッセージが表示されなくなるか確認します。
l) プリンターの影響を確認する
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Excel は起動時にプリンター情報を読み込みます。通常使うプリンターを変更することでこのメッセージが表示されなくなるか確認します。
手順 :
- Excel を終了します。
- 検索画面で、” コントロール パネル” と入力して検索し、[デバイスとプリンター] を開き、"Microsoft XPS Document Writer" 右クリックし [通常使うプリンターに設定] をクリックします。
m) その他
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
上記以外の確認ポイントとしては以下がありますが、前述の通り、このメッセージを完全に抑止する方法はないため、回避しないパターンがある場合は「■3 対応方法」での運用を検討してください。
・特定のファイルで発生しているか
・特定の場所に置くと発生しているか
・特定のユーザーで発生しているか
・特定の端末で発生しているか
■5 関連資料
以下はこのメッセージについて説明した関連資料です。
3001579 Excel: 「プログラムにコマンドを送信しているときに、エラーが発生しました」 というエラー メッセージのトラブルシューティング方法
3001579 Excel 2013 または Excel 2010 のファイルのアイコンをダブルクリックしてもファイルが開かない場合がある
本情報の内容 (添付文書、リンク先などを含む) は、作成日時点でのものであり、予告なく変更される場合があります。