none
’エラー CS0246 型または名前空間の名前 'Excel' が見つかりませんでした’ への対処法 RRS feed

  • 質問

  • タイトルの通りのエラーが出ましたので,

    「参照」を右クリック->参照の追加->COM/タイムライブラリ として探したところ,
        Microsoft Excel 12.0 Object libraly バージョン1.6
        Microsoft Excel 12.0 Object libraly バージョン1.8
        Microsoft Excel 5.0 ?????-,?―?????? バージョン1.0 がありました。

    上のどれかを選択すると解決になるのでしょうか?

    また,上のいずれかを選択したとしても,Excel2007とかExcel2013とかどの製品にも対応できるのでしょうか?

    ------------------------------------------------------------------------------------------
    エラー    CS0246    型または名前空間の名前 'Excel' が見つかりませんでした (using ディレクティブまたはアセンブリ参照が指定されていることを確認してください)。 
    -----------------------------------------------------------------------------------------

    2019年7月15日 2:58

回答

  • 基本的にはバージョンの古いMicrosoft Excel 12.0 Object Library バージョン1.6(Office 2007)を選べば2007,2013のどちらも対応はできます。
    ただし参照の追加のCOMにあるのを選んでも、アセンブリの方にあるMicrosoft.Office.Interop.Excelが参照されるようになるので、こちらのバージョンを見た方がいいです。

    バージョンを古い方に合わせたとしてもExcel自体がバージョンで動作が変わったり、COMインターフェースが微妙に仕様が変わったりしますので、どのバージョンでも動くかどうかは自分で動作確認する必要があります。
    (たとえばExcel 2013からWindowの扱いが変わったりとかです)

    Microsoft Excel 15.0 Object Library バージョン1.8(Office 2013)の書き間違いですかね
    Microsoft Excel 5.0 オブジェクト ライブラリ バージョン1.0は古すぎて使いものにならないはず


    個別に明示されていない限りgekkaがフォーラムに投稿したコードにはフォーラム使用条件に基づき「MICROSOFT LIMITED PUBLIC LICENSE」が適用されます。(かなり自由に使ってOK!)

    • 回答としてマーク goodwave 2019年7月15日 11:09
    2019年7月15日 3:57

すべての返信

  • 基本的にはバージョンの古いMicrosoft Excel 12.0 Object Library バージョン1.6(Office 2007)を選べば2007,2013のどちらも対応はできます。
    ただし参照の追加のCOMにあるのを選んでも、アセンブリの方にあるMicrosoft.Office.Interop.Excelが参照されるようになるので、こちらのバージョンを見た方がいいです。

    バージョンを古い方に合わせたとしてもExcel自体がバージョンで動作が変わったり、COMインターフェースが微妙に仕様が変わったりしますので、どのバージョンでも動くかどうかは自分で動作確認する必要があります。
    (たとえばExcel 2013からWindowの扱いが変わったりとかです)

    Microsoft Excel 15.0 Object Library バージョン1.8(Office 2013)の書き間違いですかね
    Microsoft Excel 5.0 オブジェクト ライブラリ バージョン1.0は古すぎて使いものにならないはず


    個別に明示されていない限りgekkaがフォーラムに投稿したコードにはフォーラム使用条件に基づき「MICROSOFT LIMITED PUBLIC LICENSE」が適用されます。(かなり自由に使ってOK!)

    • 回答としてマーク goodwave 2019年7月15日 11:09
    2019年7月15日 3:57
  • ずぅっと
       [デバッグ] [Any CPU] [開始]
    で様子を見ていたのですが。エラーを解消できずにいましたが,思いついて
       [デバッグ] [x86        ] [開始]
    として実行してみたら,エラーを解消することができました。

    いつも[Any CPU]だけでやっていたものですから驚きました。

    どうしてこういうことになるのか(お聞きしてみても理解できないのでしょうけれど)疑問は残りますが,ようやっと一休みすることができます。

    gekkaさん,本当にありがとうございました。

    • 編集済み goodwave 2019年7月15日 11:09 訂正
    2019年7月15日 10:40