web-dev-qa-db-ja.com

動作するMicrosoft.Office.Interop参照を取得できません

C#winformsアプリがあり、Excelシートを開こうとしているだけです。 Microsoft.Office.Interopへの参照を追加しようとすると、「Office」の部分が赤くなり、「シンボル 'Office'を解決できません」と表示されます。

ビルドしようとすると、エラーは次のとおりです。

The type or namespace name 'Office' does not exist in the namespace 'Microsoft' 
    (are you missing an Assembly reference?)

Office 2012がインストールされており、プライマリ相互運用機能アセンブリがインストールされていると思います...

私はこれがとても簡単であるべきだと知っていますが、私はこれに対する答えをほぼ1時間探していて、それを理解することができません。前もって感謝します!

17
Ben Strombeck

ライブラリアセンブリ参照をプロジェクトに追加する必要があります。これらは、「プライマリ相互運用機能アセンブリ」と呼ばれます。

(Visual Studio 2010を想定)

手順

  • ソリューションエクスプローラーウィンドウを開く
  • プロジェクトフォルダのアコーディオンを展開します。
  • 参照要素を右クリックします
  • ドロップダウンから「参照を追加」を選択します
  • [.NET]タブを選択し、Microsoft.Office.Interop.Excelというオブジェクトライブラリを探します。
  • oKをクリック

add reference window with Excel interop hilighted

これで、オブジェクトライブラリが参照に表示されます。

reference folder accordion with Excel library hilighted

27
Matthew Jacobus

VS2015でNuGetパッケージマネージャーを使用する

  • Visual Studioプロジェクトの参照を右クリックします
  • NuGetパッケージの管理を選択します
  • タイプMicrosoft.office検索ボックス内
  • Microsoft.Office.Interop.Excelを選択します
  • インストールをクリックします
  • ソリューションを再構築する
24
Simon Hutchison

今朝同じエラーが発生しました。Winformsアプリは常に過去に完全に構​​築されていました。変更されたのは、当社がラップトップをExcel 2007からExcel 2013にアップグレードしたことだけでした。

調査を重ねた結果、このアプリは.Net 3.5アプリであることに気付きました。ソリューションエクスプローラーでは、すべての参照が正常であることが提案されました。

Solution Explorer

...実際にはそうではありませんでした。テールサインは、アプリに参照を追加しようとしたときに見つからないということでした...

Interop

私がする必要があったのは:

  • .Net 3.5から.Net 4.5にアプリを更新する
  • office関連の参照(上記の最初のスクリーンショットに示されている最初の5つ)を削除します
  • 参照を再度追加します(現在バージョン14または15として表示されています)

また、次のコードを1行変更する必要がありました。

Excel = new Excel.ApplicationClass();

Excel = new Excel.Application();

これを行うと、アプリはエラーなしでビルドされ、再び正常に実行されました。

2
Mike Gledhill

Dll参照が欠落していると思います。 Microsoft.Office.Interop.Excel.dllをプロジェクト参照に追加してから、試してください。

1
Abhay Kumar

VS 2015でこのパッケージを追加する簡単な方法:

パッケージを使用する行コードで「Alt + Enter」を押し、「nuget.orgでこの名前空間を検索する」を選択します enter image description here

それをインストールしてお楽しみください:) enter image description here

1
Behzad

このビルドエラーを消去するには、Office 2013をインストールする必要があります。

0
ybdesire