VisualStudio2010を使用してMicrosoftExcel2007および2010用のアドインを開発しました。
これは、Windows7およびOffice2010を搭載した1台のコンピューターを除き、インストールされているすべてのコンピューター(WindowsXPおよびWindows7)で正常に動作します。
アドインがMicrosoftWord2010を自動化して新しいドキュメントを作成し、Excelブックからそのドキュメントに情報をコピーして貼り付けようとすると、次のメッセージが表示されます。
*タイプ'Microsoft.Office.Interop.Word.DocumentClass'のCOMオブジェクトをインターフェイスタイプ'Microsoft.Office.Interop.Word._Document'にキャストできません。次のエラーが原因で、IID'{0002096B-00000-0000-C000-0000000000046}'のインターフェイスに対するCOMコンポーネントのQueryInterface呼び出しが失敗したため、この操作は失敗しました。アプリケーションが別のスレッド用にマーシャリングされたインターフェイスを呼び出しました。(HRESULTからの例外:0x8001010E(RPC_E_WRONG_THREAD))。*
私のプログラムは、Excelブックのワークシートをループして、Word文書にコピーしています。このエラーは、いくつかのループの後で発生します。Excelの範囲がメソッドRange.CopyPictureを使用してクリップボードにコピーされた場合、WordアプリケーションにアクセスしようとするとRPC_E_WRONG_THREADエラーがスローされます。複数のスレッドを使用していません。
誰かが同じ問題を抱えているようですが、まだ答えは提供されていません:http ://social.msdn.microsoft.com/Forums/en/vsto/thread/86abd253-9fb5-46cf-8565-dc2eaa02593b
ユーザーには管理者権限があり、MS Office 2010のインストールを修復し、再度アンインストール/インストールしようとしましたが、問題は解決しませんでした。コンピューターにOffice2007をインストールした後、アドインはExcel 2007で正常に機能しますが、Excel2010では機能しません。
このエラーを見たことがありますか?それを修正する方法を知っていますか?
ありがとう