web-dev-qa-db-ja.com

Exception:Callの解決方法は、呼び出し先によって拒否されました。 (HRESULTからの例外:0x80010001(RPC_E_CALL_REJECTED))C#で?

コンソールアプリケーションでC#コードを記述して、2つのExcelを開き、1つのExcelから別のExcelにデータをコピーして貼り付けました。目的のExcelの可視性が真になるまで、正常に機能していました。ただし、実行時にはExcelを非表示にする必要があります。そこで、可視性をfalseに変更しました。お気に入り、

  _destExcelApp = new Excel.ApplicationClass();
  _destExcelApp.Visible = false;

今のような例外を示しています

呼び出し先が呼び出しを拒否しました。 (HRESULTからの例外:0x80010001(RPC_E_CALL_REJECTED))

これを解決する方法は?

13
Manoj Nayak

Excelの完全にライセンス認証されたインストールを行わずにアプリケーションをコンピューターに展開したときに、この同じエラーが発生しました。問題の診断に何時間も費やしました。 Officeのインストールをチェックして、それらが完全であることを確認してください。

19
Crash5998

私は同じエラーに直面していましたが、提案された多くの解決策は私にとってはうまくいきませんでした。 Windows 8で実行中のアプリケーションがあり、問題はExcelが常に「xlsx」拡張機能のデフォルトアプリケーションを選択するように求めていることでした。アプリケーションを実行すると、ウィンドウダイアログが表示されず、エラーのみが表示されました。

[コントロールパネル]> [プログラム]> [既定のプログラム]に進み、Microsoft Office Excel 2016をxlsxファイルの既定のプログラムとして設定する問題を解決しました。

5
Alielson Piffer

MS Word/Excelが応答を必要とするダイアログボックスを表示していないことを確認します。

失敗の原因となった行にブレークポイントを設定し、.Visibleこれを見つけるには、PowerShellでtrueにします。

$Word.Visible = $true

MS Word Set default program Prompt

[はい]をクリックして設定を更新した後、スクリプトCOMインタラクションを再実行した後、それらは成功しました。

4
CJBS

Wordでこの問題に遭遇し、解決策はOpenOfficeのアンインストールでした。別の解決策があるかどうかはわかりませんが、dllに関係している可能性が高く、プログラムで生成している特定のファイルのデフォルトのファイルハンドラーと競合しています。

3
amadib

私はこの質問の助けを借りてこの動作を解決しました:

Excelでの「呼び出しが呼び出し先によって拒否されました」例外の奇妙な動作

問題は、単にWorkbook.Openコマンドを与えたときにWorksheet.SaveAsが終了していないことでした。そのため、スクリプトが機能することもあれば、機能しないこともあります。

Workbook.Openの後にスクリプトに一時停止を追加しただけで、機能しました。次に、プロパティReadyを見つけました。これにより、必要なことを正確に行うことができました。

    $Excel = New-Object -ComObject "Excel.Application" -ea Stop
    $wb = $Excel.Workbooks.Open($workbook)
    $sheet = $wb.Sheets("List")
    while (-not $Excel.Ready) {
        sleep 1
    }
    $sheet.SaveAs($csvpath,6)

そのため、私の場合、非アクティブ化または破損したExcelインストールとは何の関係もありませんでした。

2
Joost

今日、Excel 2016でこのエラーが発生しました。

この問題が発生したコンピューターでは、いくつかのアドインがアクティブになっていることがわかりました。

奇妙なことに、1台のPCがExcelを起動するのに時間がかかりました。アドインを無効にした後、プログラムは正常に機能しました。

奇妙なことに、開発用PCでこれを再現できませんでした。

1
Martin H.

あるドキュメントから別のドキュメントにさまざまな情報をコピーしていますか、またはセルごとにコピーする2つのドキュメント間を行き来していますか? Excelはシングルスレッドであるため、前後に移動するとこの問題が発生する可能性があります。

1
Duphorn

私のマシンでこの問題に遭遇しました。 Excelは完全にアクティブ化され、すでに.xlsxファイルのデフォルトプログラムです。ピボットテーブルで作成したワークブックテンプレートをロードし、スクリプトでテーブルのデータを更新していました。ピボットテーブルが[ピボットテーブルオプション]> [データ]で[ファイルを開くときにデータを更新する]に設定されている場合、何らかのスレッド競合の問題が発生します。
開くときに更新を無効にすると、問題が解決しました。

0
Ghostnine22

私の場合、単純にマシンを再起動すると、Windowsの更新が保留されていることがわかりました。マシンを再起動すると問題が解決しました。

0
Ritzies