30

MicrosoftOfficeWord用のアドインを作成しました。Wordを管理者として実行する場合、アドインの使用に問題はありませんが、管理者として実行しない場合、リボン要素にアクセスする際の2つの一般的な例外があります。

最初の例外:

Unable to cast COM object of type 'System.__ComObject' to interface type 'Microsoft.Office.Core.IRibbonUI'. This operation failed because the QueryInterface call on the COM component for the interface with IID '{000C03A7-0000-0000-C000-000000000046}' failed due to the following error:  could not be found. (Exception from HRESULT: 0x80030002 (STG_E_FILENOTFOUND)).
   at Microsoft.Office.Core.IRibbonUI.InvalidateControl(String ControlID)

このエラーは、次のコードによってコントロールが無効化された場合に発生します。

ribbon.InvalidateControl("control-id");

そして2番目の例外:

Unable to cast COM object of type 'Microsoft.Office.Interop.Word.ApplicationClass' to interface type 'Microsoft.Office.Interop.Word._Application'. This operation failed because the QueryInterface call on the COM component for the interface with IID '{00020970-0000-0000-C000-000000000046}' failed due to the following error:  could not be found. (Exception from HRESULT: 0x80030002 (STG_E_FILENOTFOUND)).
   at Microsoft.Office.Interop.Word.ApplicationClass.get_Selection()

このエラーは、次のコードの最後の行で発生します。

object wdStory = Word.WdUnits.wdStory;
object wdMove = Word.WdMovementType.wdMove;
WrdApp.Selection.EndKey(ref wdStory, ref wdMove)

この問題を解決するにはどうすればよいですか?

4

6 に答える 6

59

問題が解決しました!

以前にOffice2010をインストールしたので、Windowsレジストリにいくつかの不整合があります。それらを修正するには、を開き、regeditエラーからCLSIDを見つけます。

2番目のエラーにはそのようなものがあります。

HKEY_CLASSES_ROOT\Interface\{00020970-0000-0000-C000-000000000046}

サブキーを使用する場合:

  • ProxyStubClsid
  • ProxyStubClsid32
  • TypeLib

(Default)内のとVersionの値を見てくださいTypeLib

(Default)次に、値をとして使用して、以下のノードを見つけます<TypeLib ID>

HKEY_CLASSES_ROOT\TypeLib\<TypeLib ID>\<version>

この要素の子として、複数の要素が見つかります。そのうちの1つはVersion、最初のレジストリの要素です。他の要素を調べると、それらが何も指していないことがわかります。他のものを削除してください!!! 解決しました!

于 2012-10-18T20:02:42.107 に答える
8

最新のOfficeバージョンにアップグレードした後、同じ例外が発生し始めました。@Victorが説明したのと同様の方法でレジストリをクリーンアップするなど、いくつかの提案された修正を試しました。

最終的に助けになったのは(それが要因の組み合わせであったとしても)、インストールを「修復」することでした。

Programs and Features→最新Officeバージョン→ Repair

于 2015-10-13T17:37:44.277 に答える
1

オフィスの修理は私のために働いた。私の場合、構成を変更したと思われるProjectをインストールしたため、ExcelブックからSQLにデータを移行するためのプロシージャを呼び出すことができませんでした。

于 2018-01-19T10:05:04.940 に答える
0

Office 2010 / MS Word / .NETProgrammabilitySupportをインストールするだけです。

于 2015-09-17T06:46:29.223 に答える
0

@Victorあなたは私を正しい道に向かわせました。私の問題は、レジストリ内の複数の値ではなく、Office365が追加しなかった値の欠落でした。あなたのおかげで私は自分自身の解決策を見つけることができました。千千ありがとう。

まだ解決策を探している人のために、詳細はここにあります。

于 2016-03-08T00:53:01.523 に答える
0

今日、VS2015とOffice2013で同じ問題が発生しました。プラットフォームターゲットをx64に変更するとうまくいきました。

于 2017-03-20T05:14:47.410 に答える